短语中类似单词的正则表达式交替
regex alternation with similar words in a phrase
我正在学习JavaScript并尝试为类似的短语开发正则表达式模式。这是我目前拥有的:
var regEx = /(?:[^"']|^)(show me a picture|show me a photo|show me a photograph)(?!["'])/i;
我一直在试图理解交替,但这个正则表达式的结果是它只会匹配 show me a picture
& show me a photo
而不是show me a photograph
。我的理解是正则表达式已经找到了show me a photo
所以它止步于此。
我无法找到也可以解释show me a photograph
短语的正则表达式。
也许这不是最有效的方法,这就是我遇到问题的原因。
更改您的正则表达式以捕获整个短语(单词),如下所示:
var regEx = /(?:[^"']|^)('bshow me a picture'b|'bshow me a photo'b|'bshow me a photograph'b)(?!["'])/ig;
JavaScript 正则表达式规范是这样说的:
|
正则表达式运算符将两个替代项分开。该模式首先尝试匹配左侧 Alternative(然后是正则表达式的续集);如果失败,它将尝试匹配正确的析取(后跟正则表达式的续集)。
因此,如果您要求匹配show me a photo|show me a photograph
,则始终首选左侧替代方案。如果您希望photograph
优先,请按其他顺序放置它们。
相关文章:
- 用于匹配不带字符的单词的正则表达式
- 在正则表达式中搜索单词
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 正则表达式用于在javascript中存储单词之前和之后
- 只使用正则表达式匹配单词后面的所有内容
- 用特定的javascript正则表达式替换每个单词
- 正则表达式以更改字符串中的某些单词
- 匹配给定的正则表达式,除非存在给定的单词(lookahead或lookbacking)
- 如何通过JavaScript正则表达式匹配不同语言中的单词
- Javascript 正则表达式在特定单词或数字之后拆分
- 短语中类似单词的正则表达式交替
- 与冒号(不包括冒号)之间的正则表达式单词匹配
- 连续重复的单词以使用正则表达式进行更改
- 用于匹配带空格和不带空格的多个单词的正则表达式
- 如何使用正则表达式 JavaScript 替换具有特定单词的整行
- 使用正则表达式获取多个单词,单词之间留有空格
- 一个具有精确pettern的单词的正则表达式
- JS正则表达式匹配单词,包括用空格括起来的单词
- 使用 JavaScript 正则表达式获取所有没有 HTML 标签的单词
- 如果里面的模式匹配,抓取完整的正则表达式单词