2

我正在构建一个小说写作工具,其中包括由“//”指定的内联注释(a la JavaScript)。

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

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

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

但,

  1. 他们不一起工作,即\S+^(?!\/\/).+$/gm
  2. 我将如何排除 // 和行尾之间的单词?IEThese 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单词计数正则表达式,not /\w+/g,它将收缩计为两个单词]

4

2 回答 2

2

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

/\/\/.*/gm

它只匹配任何 2 个斜线后跟任何字符。只需替换为空字符串即可。现在你有一个很好的没有斜线的文本,你可以使用你的单词计数正则表达式来Count处理单词。

于 2018-10-30T22:52:24.807 回答
2

这种模式应该是你需要的。^.+?(?=//)|^(?!//).+

演示

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

于 2018-10-30T22:31:41.910 回答