我有一个字符串:
bdv. mot. g. vns. kilm.
了解诸如
之类的字符串列表important_strings_lst=['bdv.', 'dktv.', 'mot. g.', 'vyr. g.']
我想选择regex
,例如:
bdv. mot. g.
我加入了列表,并尝试:idea from here
regex = re.compile(r'\b(?!bdv.|dktv.|mot. g.|vyr. g.)\w+', re.UNICODE)
regex.sub("", 'bdv. mot. g. vns. kilm.')
知道了
'bdv. mot. . . .'
使用\s
更改正则表达式中的位置也无法解决。怎么做?
我可以使用类似[x for x in important_strings_lst if x in my_string]
的东西,但是我需要良好的性能,因为它将与str.replace的百万行熊猫数据帧一起使用
答案 0 :(得分:0)
.
字符在正则表达式中具有特殊含义。您可以使用re.escape
使字符串“ safe”在正则表达式中使用。
>>> import re
... important_strings=['bdv.', 'dktv.', 'mot. g.', 'vyr. g.']
... regex = re.compile('|'.join(re.escape(s) for s in important_strings))
... regex.findall('bdv. mot. g. vns. kilm.')
['bdv.', 'mot. g.']
熊猫有自己的findall
,应该像re.findall
答案 1 :(得分:0)
也许是分割字符串
@Controller
使用您的列表,从原始字符串中删除拆分后剩下的内容。