资深编码员!
我需要让正则表达式识别不位于单行注释内的所有\w
单词字符。
在我的情况下,我使用的是Asciidoc,单行注释以一行开头的//
开头。
为了弄清楚,我使用的是带有PHP正则表达式风格的regex101.com。
我正在使用的示例文本是:
foo bar baz
//bla ble blu
// mee maa moo
我需要正则表达式返回:f,o,o,b,a,r,b,a,z
,而忽略其余部分。
我以为我应该先行后顾,但确切的表述使我无法抽身。
我能想到的最好的是(?<!^\/\/.*)\w
,但是它不匹配我需要的所有字符。
有什么想法吗?
您可以使用带有与VSCode中未知长度的字符串相匹配的模式的后视,因为其搜索和替换功能基于现代ECMAScript标准(请参见this thread)。
使用
(?<!^//.*?)\w
请参见regex demo。
详细信息
(?<!^//.*?)
-后面是负数,可确保在字符串的开头没有//
,后跟除换行符以外的任何0个或多个字符,并尽可能少,直到最接近的字符...] >\w
-匹配字母,数字或_
。在VSCode中测试:
您可以使用带有与VSCode中未知长度的字符串相匹配的模式的后视,因为其搜索和替换功能基于现代ECMAScript标准(请参见this thread)。
使用
(?<!^//.*?)\w
请参见regex demo。
详细信息
(?<!^//.*?)
-后面是负数,可确保在字符串的开头没有//
,后跟除换行符以外的任何0个或多个字符,并尽可能少,直到最接近的字符...] >\w
-匹配字母,数字或_
。在VSCode中测试: