我有正则表达式:\\([A-Z][\w]+::)
与字符串\CustomLib::get...
或\Resize::get...
或\Models::get...
匹配,也可能是其他类似的字符串。
我想改变正则表达式:\\([A-Z][\w]+::)
以获取没有前导反斜杠的列表字符串实例,如CustomLib::get...
或Resize::get...
或Models::get...
。
答案 0 :(得分:1)
如果它们前面没有反斜杠,似乎你想要匹配子串。
使用negative lookbehind (?<!\\)
:
'~(?<!\\\\)\b[A-Z]\w+::~'
请参阅regex demo
请注意,如果您的输入中可能包含转义实体,则需要考虑文字反斜杠,并使用
'~(?<!\\\\)(?:\\\\\\\\)*\b([A-Z]\w+)::~'
请参阅this regex demo。