我要提取
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
另外,我怎样才能摆脱大写?
这里的技巧可能是用括号捕捉你真正想要的部分:
(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)
InputText 当然是您的 SQL 查询字符串。
ms(1) 应该保持括号匹配
归根结底,您可以通过 (F|f)(R|r)(O|o)(M|m) 忽略大写。
像 RegexBuddy(40 美元)或 The Regex Coach(免费)这样的交互式工具将真正帮助您为大多数平台设计和调试正则表达式。