我正在网站上实现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”将匹配而不消耗所有非单词字符的内容。