내 SQL 문을 구문 분석하기 위해 정규 표현식을 만들도록 도와주세요.
-
09-09-2019 - |
문제
추출하고 싶어요
FROM codes WHERE FieldName='ContactMethod' and IsNull(Deactived,'') != 'T'
~에서
SELECT FieldDescription,FieldValue FROM codes WHERE FieldName='ContactMethod'
and IsNull(Deactived,'') != 'T' order by fielddescription
정규 표현을 사용합니다. 나는 다음과 같은 동정인이 있습니다.
\FROM.*\order
어떤 추출물
FROM codes WHERE FieldName='ContactMethod' and IsNull(Deactived,'') != 'T' order
또한 자본화를 어떻게 제거 할 수 있습니까?
감사
해결책
여기의 요령은 아마도 당신이 실제로 Parens와 함께 원하는 부분을 포착하는 것입니다.
(FROM.*) order
이것은 마지막까지 탐욕스럽게 일치 할 것입니다 order
, 첫 번째 발생까지만 원한다면 게으르게 일치합니다.
(FROM.*?) order
다른 팁
Fabian Steeg의 답변에 대한 확장
Dim regex As Regex = New Regex( _
"(FROM.*?) ORDER", _
RegexOptions.IgnoreCase _
Or RegexOptions.CultureInvariant _
Or RegexOptions.IgnorePatternWhitespace _
Or RegexOptions.Compiled _
)
Dim ms As MatchCollection = regex.Matches(InputText)
입력 텍스트는 물론 SQL 쿼리 문자열입니다.
MS (1)는 괄호 일치를 유지해야합니다
그것이 내려 오면 (f | f) (r | r) (o | o) (m | m)를 통해 자본화를 무시할 수 있습니다.
대화 형 도구와 같은 RegexBuddy ($ 40) 또는 Regex 코치 (무료)는 대부분의 플랫폼에 대한 일반 표현식을 설계하고 디버깅하는 데 도움이됩니다.
제휴하지 않습니다 StackOverflow