2

我试图捕获字符串中的每个单词,除了“and”。我还想捕捉像 *this* 这样被星号包围的单词。我使用的正则表达式命令大部分都有效,但是当它捕获带有星号的单词时,它会遗漏第一个单词(因此 *this* 只会捕获 this* )。这是我正在使用的正则表达式:

/((?!and\b)\b[\w*]+)/gi

当我删除最后一个单词边界时,它将捕获所有 *this* 但不会遗漏任何 'and' 。

4

1 回答 1

1

问题是它*不被视为一个单词字符,所以\b不要匹配它之前的位置。我认为您可以将其替换为:

^(?!and\b)([\w*]+)|((?!and\b)(?<=\W)[\w*]+)

\b 被替换为 \W (非单词字符)以匹配也*,但是字符串中的第一个单词将不匹配,因为前面没有非单词字符。这就是我添加替代方案的原因。

演示

于 2015-07-17T16:11:24.557 回答