需要有关 RegEx 的建议

需要有关 RegEx 的建议

我正为一个问题而苦恼,但找不到合适的解决方案。问题:编写一个正则表达式,匹配文本中所有出现的不同字符或单词。文本顺序应完全如下:

请播放播放器

我试过了

(pl|播放|播放器)

但出于某种原因,它只会在所有单词中选择 pl。那么有人知道这是为什么吗?是否可以仅使用正则表达式来实现?

链接到regex101

任何帮助将不胜感激。

答案1

在寻找替代方案时,如果它们具有/以公共字符开头,则从最长的单词开始到最短的单词。由于plplayplayer以 开头pl,因此仅pl匹配(作为第一个替代方案)。playplayer不予考虑。

你的正则表达式应该是:(player|play|pl)

在这种情况下,首先测试/比较这些单词player,然后play如果player未找到则测试/比较,最后pl如果未找到另外两个单词则测试/比较。

答案2

您需要指定贪婪匹配,因此.*在正则表达式的末尾添加,如下所示: (pl|play|player).*

使用贪婪匹配时必须小心,因为最终可能会匹配超出您想要的结果。

相关内容