正则表达式查找不在单行注释中的所有单词字符

问题描述 投票:-2回答:1

资深编码员!

我需要让正则表达式识别不位于单行注释内的所有\w单词字符。

在我的情况下,我使用的是Asciidoc,单行注释以一行开头的//开头。

为了弄清楚,我使用的是带有PHP正则表达式风格的regex101.com。

我正在使用的示例文本是:

foo bar baz
//bla ble blu
// mee maa moo

我需要正则表达式返回:f,o,o,b,a,r,b,a,z,而忽略其余部分。

我以为我应该先行后顾,但确切的表述使我无法抽身。

我能想到的最好的是(?<!^\/\/.*)\w,但是它不匹配我需要的所有字符。

有什么想法吗?

regex visual-studio-code word-count asciidoc
1个回答
0
投票

您可以使用带有与VSCode中未知长度的字符串相匹配的模式的后视,因为其搜索和替换功能基于现代ECMAScript标准(请参见this thread)。

使用

(?<!^//.*?)\w

请参见regex demo

详细信息

  • (?<!^//.*?)-后面是负数,可确保在字符串的开头没有//,后跟除换行符以外的任何0个或多个字符,并尽可能少,直到最接近的字符...] >
  • [\w-匹配字母,数字或_
  • 在VSCode中测试:

enter image description here


0
投票

您可以使用带有与VSCode中未知长度的字符串相匹配的模式的后视,因为其搜索和替换功能基于现代ECMAScript标准(请参见this thread)。

使用

(?<!^//.*?)\w

请参见regex demo

详细信息

  • (?<!^//.*?)-后面是负数,可确保在字符串的开头没有//,后跟除换行符以外的任何0个或多个字符,并尽可能少,直到最接近的字符...] >
  • [\w-匹配字母,数字或_
  • 在VSCode中测试:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.