我正在尝试检测字符串中诸如“haha​​haha”和“lolololol”之类的笑词。

目前,我正在使用以下正则表达式:

^((.*?)|)(\b[ha]|\b[lo])(.*?)$

但是,这不适用于我的目的。它可以工作,但也可以匹配与笑声完全无关的单词,例如“kill”,因为它只是查找包含字母l,o,h,a的任何单词。

如何检测字符串中的笑语(例如“haha​​ha”或“lololol”)?

最佳答案

尝试使用以下模式:

\b(?:a*(?:ha)+h?|(?:l+o+)+l+)\b

如果您的正则表达式风格支持原子团和所有格修饰符,则更好;
\b(?>a*+(?:ha)++h?|(?:l+o+)++l+)\b

关于regex - 如何检测字符串中的笑话?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16453522/

10-11 23:00