【问题标题】:RegEx match only allow specific words and disallow anything before [closed]正则表达式匹配只允许特定的单词并且在 [关闭] 之前不允许任何内容
【发布时间】:2022-11-18 19:15:57
【问题描述】:

我有这个用于更改 C# 源代码的注入 VB 脚本。 这是我当前用于查找文件中包含类的代码行的当前 RegEx 匹配规则

(public|protected|internal|private|static|abstract)\b\W+(class)\b

它可以工作并检测类行,但问题是它检测了下面示例中的所有情况。因为只有第一个应该是有效的。

public class  <-- is valid match
//this is a public class comment    <-- Should not be valid as match
"This is just a string talking about a public class"    <-- Should not be valid match

对我来说,缺少的是让这个匹配规则起作用,只允许与允许的词匹配的内容,并使任何其他额外的匹配无效。好吧,空格应该是唯一应该被允许的类型。

任何人都可以帮助如何更新当前的 RegEx 以仅匹配我刚刚给出的三个示例的第一行?

【问题讨论】:

    标签: regex vbscript


    【解决方案1】:

    您可以使用 ^s* 来指示它必须位于行首,后跟 0 个或多个空格:

    ^s*(public|protected|internal|private|static|abstract)W+(class)

    regex101

    【讨论】:

      【解决方案2】:

      如果{以下类名可用于区分您的 3 种情况,您可以这样修改正则表达式:

      (public|protected|internal|private|static|abstract)W+(class)s*[
      ]{0,2}s*{
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-26
        • 1970-01-01
        • 1970-01-01
        • 2020-05-09
        • 2013-03-06
        相关资源
        最近更新 更多