javascript - 正则表达式:我只想匹配末尾没有点的单词

标签 javascript regex

例如:乔治·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/

相关文章:

regex - 使用 ko.observable 进行多电子邮件验证

regex - 使用grep获取两个特定单词/字符之间的字符串的模式

javascript - 添加暂停以暂时禁用点击

javascript - 为什么下面使用PLupload在IE8中不起作用?

javascript - MDN 示例(Math.random()): could it be parseInt() instead of Math. Floor()?

javascript - 是否有一个 UI 框架来模拟 Mac 应用程序的外观?

ruby-on-rails - 在尊重 CDATA 的同时转义 HTML 符号的正则表达式

python - 如何创建一个返回嵌入记录中的值的函数?

javascript - 对加载的对象使用 WireframeHelper

正则表达式 - 量词可以跳过特定范围吗?