我正在网站上实现Twitch.tv表情,但是使用此正则表达式遇到了麻烦。我在90%的位置,但是有一种情况我不知道如何解决。

这是我拥有的正则表达式:(选项为gm

(^|\s+| )Kappa($|\s+)


Kappa在循环中被替换以检查不同的表情。这是我的测试案例。没有检测到第二个和第三个。每行中的第二个Kappa未被捕获。

Kappa
Kappa Kappa
Kappa Kappa Kappa
KappaHD Kappa FrankerZ Kappa
Someone Said: Kappa
:  Kappa
Kappa KappaHD Kappa
KappaKappa


如果您不熟悉,请遵循以下规则:


查找Kappa的所有实例(g设置)
可以在字符串的开头或结尾/字符串行(m设置)
必须靠自己,而不是一个词


问题似乎是第一个Kappa在其后的空格中匹配,因此找不到第二个。

这是带有示例代码的Regex101:https://regex101.com/r/fY0fN4/3

如何获取它以正确检测Kappa中的两个Kappa Kappa实例?

我考虑过在\sKappa\s上进行第二次查找,但这似乎并不是最好的解决方案。

最佳答案

一个更简单的解决方案:

\bKappa\b


https://regex101.com/r/jG2wO4/1

单词边界“ \ b”将匹配而不消耗所有非单词字符的内容。

08-08 05:52