English 中文(简体)
如何创建一个正则表达式来解析我的SQL语句。
原标题:
  • 时间:2009-02-26 15:48:47
  •  标签:

我想要提取

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(免费)这样的交互工具将有助于您设计和调试大多数平台的正则表达式。





相关问题
热门标签