例如:乔治·R·R·马丁 我只想匹配乔治和马丁。
我已经尝试过:\w+\b.
但是不起作用!
最佳答案
\w+\b.
匹配 1 个以上单词字符,后跟单词边界,然后是任何非单词字符(如 \b
限制以下 .
子模式)。请注意,这种方式不会否定任何内容,并且您会错过一件重要的事情:必须转义正则表达式模式中的文字点。
您可以使用否定前瞻(?!\.)
:
var s = "George R.R. Martin";
console.log(s.match(/\b\w+\b(?!\.)/g));
请参阅regex demo
详细信息:
\b
- 前导字边界\w+
- 1+ 个单词字符\b
- 尾随单词边界(?!\.)
- 最后一个匹配的单词字符后不能有.
。
查看更多有关how negative lookahead works的信息在这里。
关于javascript - 正则表达式:我只想匹配末尾没有点的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40075337/