1

这是我的正则表达式:

STATICSTRING\s[a-zA-Z]:\\[\\\S|*\S]?.*$|STATICSTRING\s\w*

如您所见,有两种模式,它们\s[a-zA-Z]:\\[\\\S|*\S]?.*$与运算符\s\w*相结合|。并且STATICSTRING在每个中都重复。

有没有办法写STATICSTRING一次?

4

1 回答 1

2

您可以在分组构造中使用|交替运算符来分组两个子模式:

STATICSTRING\s(?:[a-zA-Z]:\\[\\\S|*\S]?.*$|\w*)
              ^^^                         ^   ^

但是,该\\[\\\S|*\S]?.*部件看起来像是用户错误。它匹配 a \,然后匹配 1 或 0 次\,或任何非空白字符,然后|匹配任何 0+ 字符直到行尾。如果您打算匹配其他任何内容,请确保修复它。但是分支总是会“获胜”,因为它总是匹配(空字符串或字母(也匹配字母))。所以,上面的模式等于。*.*\w*[a-zA-Z]STATICSTRING\s\w*

于 2018-06-25T07:07:37.697 回答