javascript - 仅查找以单引号或双引号开头的所有单词的正则表达式

标签 javascript regex

我必须在文本中找到所有以 '" 单引号或双引号(因此类似于英语缩写)开头的单词,例如 embar in

I love 'em
foo 'bar
foo 'bar?
foo 'bar.

但忽略被双引号或单引号包围的单词,例如

foo "bar"
foor 'bar'

现在,找到那些最后一个的正则表达式就像 this一个

// find words in double or single quotes
/\"([^\"]+)\"|'([^']+)'|\\S+/

但是如何查找仅以 '" 开头的单词,而忽略 'foo 中的单词 foo 的最后一个标点? 'foo. 等加上双引号或单引号?

最佳答案

您可以将 '" 与字符集 ["'] 匹配。将该字符集捕获到一个组中,以便稍后可以反向引用它。重复单词字符,然后匹配单词边界,对第一个捕获的组 ((?!\1)) 进行负前瞻,确保单词结束后的下一个字符不是 与开头匹配的相同 '"

(['"])\w+\b(?!\1)

https://regex101.com/r/d5l2ol/2

请注意,这允许不一致的引号,例如

foo "bar'

(如果您不想这样,只需在负向先行中再次重复 ['"] 字符集,而不是反向引用)

关于javascript - 仅查找以单引号或双引号开头的所有单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53344135/

相关文章:

javascript - 如何使用 jQuery 查找和替换 HTML 或 XML 文档中两个标签之间的文本?

java - 如何在不影响 Java 中的 URL 的情况下从字符串中删除所有注释

javascript - 如何回发并在悬停时显示 div 并从数据库获取信息

javascript - 如何更改 for 循环中制作的圆圈的位置?

Javascript 正则表达式用链接替换 ​​URL,但不在嵌入(或 img)标签中

regex - 在文件中替换/插入时间戳

regex - 我想更改我的网址 (htaccess)

javascript - super 下拉菜单

javascript - Jquery - 查找子ID的类

regex - 批量重命名目录名称