【问题标题】:Detect word that end with a semicolon with regex使用正则表达式检测以分号结尾的单词
【发布时间】:2015-01-12 14:38:11
【问题描述】:

我很想编写一个正则表达式模式来检测单词是否以 var 开头并以分号结尾。我有正则表达式代码,但是在运行时它匹配最后一个分号所在的位置,而不是匹配以分号结尾的每个单词。这是我的正则表达式模式。

dim pattern as string = "^[var].+;$"; help please.

【问题讨论】:

  • 您是要提取 var 和分号之间的单词,还是要匹配以 var 开头并以分号结尾的序列?如果您只是想匹配整个序列,请尝试“var.+;”

标签: regex vb.net


【解决方案1】:

您的正则表达式现在匹配以“v”、“a”或“r”开头并以分号结尾的整行。

如果要匹配以 var 开头并以分号结尾的整行,方法如下:

"^var.+;$"

如果只有行内的变量定义,那么:

"var.+;"

第二种方式将匹配以下内容:

var a;

var b, c;

a = 5; var b, c = a; //注释

a = 5; //注释 var ;

粗体表示匹配

【讨论】:

    【解决方案2】:

    好像你想要这样的东西,

    (?<!\S)var\S*;(?!\S)
    

    (?&lt;!\S) 断言匹配 var 前面不会有非空格字符。 \S* 匹配零个或多个非空格字符。 ;(?!\S) 仅当分号后面没有非空格字符时才匹配。

    DEMO

    (?<!\S)var.*?;(?!\S)
    

    DEMO

    【讨论】:

      猜你喜欢
      • 2018-07-17
      • 2011-10-17
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 2020-03-28
      • 2013-08-26
      相关资源
      最近更新 更多