我正在尝试检测字符串中诸如“hahahaha”和“lolololol”之类的笑词。
目前,我正在使用以下正则表达式:
^((.*?)|)(\b[ha]|\b[lo])(.*?)$
但是,这不适用于我的目的。它可以工作,但也可以匹配与笑声完全无关的单词,例如“kill”,因为它只是查找包含字母l,o,h,a的任何单词。
如何检测字符串中的笑语(例如“hahaha”或“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/