我想创建自己的停用词列表。为了解决大小写问题,我想将re合并到列表中:
new_stopwords = ['food','eat','drink','order','time',r'[?M?m?c?C\S]','service']
r'[?M?m?c?C\S]'
旨在查找麦当劳的所有变体。但这似乎不起作用
答案 0 :(得分:0)
您正在犯一个常见的初学者错误,即假设方括号确实起作用...某些东西却没有。正则表达式中的方括号引入了 character类,其中正则表达式引擎将匹配方括号之间的任何字符。因此[M?m?]
会匹配单个M
,?
或m
(或?
,但我们已经说过了,不是吗? ?)
可能您正在寻找类似的东西
r"[Mm][Cc][Dd]\w+'?s"
,它将匹配大写或小写M
,然后是大写或小写C
,然后是大写或小写D
,然后是任何“单词”字符{{1 }},重复一次或多次\w
,后跟撇号+
,后者是可选的'
,后跟小写字母?
。
我们无法读懂您的想法,但希望这至少可以帮助您更好地表达您想说的话。 Stack Overflow regex
tag info page概述了一些常见的初学者错误以及如何避免它们,并提供了指向更多与正则表达式相关的学习和测试资源的指针。