如果您有字典:
dic = {'a':1, 'b':2, 'c':3, 'd':4}
如何使用正则表达式搜索字符串中的每个键?
例如,在字符串中查找'a'
或'b'
或'c'
或'd'
?
我是不是要在正则表达式中手动编写所有键,还是有更方便的方法?手动表示:
re.search(r'(a|b|c|d)', string).group()
我为什么要问这个?我的字典很长。我要花一些时间在正则表达式中手动编写所有字典键。 而且我在任何地方都没有看到答案。
答案 0 :(得分:0)
如果您需要将密钥输入到正则表达式字符串中,则可以从字典中获取密钥,然后将它们连接到您的正则表达式字符串中:
dic = {'a':1, 'b':2, 'c':3, 'd':4}
keys = dic.keys()
result = re.search(r'|'.join(keys), string).group()
答案 1 :(得分:0)
基本上,您只会得到文本中的键。使用集合更容易做到:
d ={"a":1,"b":1,"c":1,}
text ="This is some text that contains a and b but not the third key in your dict"
found = set(d)&set(text.split())
print(found)
输出:
set(['a', 'b'])
特别是因为您将需要保护具有密钥'pa'
和包含'Champangner'
..的文本的正则表达式,除非您在示例中未对其添加其他限制,否则正则表达式将与之匹配。
Doku:
答案 2 :(得分:0)
re.search(r'|'.join(d.keys()), string).group()