我想提取
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
另外,我怎样才能摆脱大写?
由于
答案 0 :(得分:1)
这里的诀窍可能是用parens捕捉你真正想要的部分:
(FROM.*) order
这会贪婪地匹配,直到最后order
,如果你只希望到第一次出现,就懒得匹配:
(FROM.*?) order
答案 1 :(得分:1)
扩展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)
其中InputText当然是您的SQL查询字符串。
ms(1)应该保持括号匹配
答案 2 :(得分:0)
如果归结为它,你可以通过做(F | f)(R | r)(O | o)(M | m)来忽略大写。
答案 3 :(得分:0)
RegexBuddy($ 40)或The Regex Coach(免费)等交互式工具可以帮助您设计和调试大多数平台的正则表达式。