正则表达式,用于从字计数器中排除以//开头的行

时间:2018-10-30 22:21:17

标签: regex

我正在构建一种新颖的书写工具,其中包含由JavaScript的“ //”指定的内嵌注释。

我希望能够对不属于注释(因此属于“真实”小说)的所有单词进行计数,以便作家可以使用它来跟踪其单词计数目标。

对于到目前为止的字数,我一直在使用:/\S+/g

我成功地找到了一种排除带有// ^(?!\/\/).+$/gm前缀的全行的方法

但是

  1. 他们不能一起工作,即\S+^(?!\/\/).+$/gm
  2. 我如何排除//和行尾之间的单词?即These words are included.//but these aren't

所有情况下的示例文本:

// Scene Name - This is a scene description.`
// !Location
// @John @David
Hello, I am very grateful to the Stack Overflow community for teaching me how to fix every problem I've ever had. //wow good content
And here's some more text. This is 30 words. 

我想念什么?

[编辑:我将/\S+/g用于单词计数正则表达式,而不是/\w+/g,它将收缩视为两个单词]

2 个答案:

答案 0 :(得分:2)

此模式应该是您所需要的。 ^.+?(?=//)|^(?!//).+

Demo

如果您有任何疑问,请告诉我。

答案 1 :(得分:2)

我建议您将操作分为两部分,首先使用以下(简单的)正则表达式进行替换:

/\/\/.*/gm

它只匹配任意两个斜杠后跟任何字符。 只需替换为空字符串即可。现在,您已经有了一个不错的文本,没有斜线,并且可以使用字数统计正则表达式来Count个单词。