gpt4 book ai didi

python - 如何匹配字符串列表中的字符串并忽略正则表达式特殊字符?

转载 作者:行者123 更新时间:2023-12-05 03:27:51 27 4
gpt4 key购买 nike

我有这个字符串:

d = {'col1': ['Digital Forms - how to spousal information on DF 2,0']}

我把它变成了一个数据框:

df = pd.DataFrame(d)

从这个数据框中,我想匹配这个单词列表:

wordlist = ['Digital Forms', 'how', 'spousal', 'DF 2.0']

我使用了 findall 函数和一些正则表达式来返回我的列表:

words =  df['col1'].str.findall(r"\b("+'|'.join(wordlist)+r")\b", flags=re.IGNORECASE)

这是结果:

[Digital Forms, how, spousal, DF 2,0]

我想去掉 DF 2,0 因为它不应该是结果的一部分。我知道在正则表达式中,点 (.) 是用于匹配任何字符的特殊字符。在这种情况下,DF 2.0 中的点用于匹配 DF 2,0。我试图修改我的脚本并包含类似 '\\.' 的内容 忽略点的特殊字符。对我没有任何作用。

谁能帮我修改以下内容,使其忽略点的特殊字符?

'df['col1'].str.findall(r"\b("+'|'.join(wordlist)+r")\b", flags=re.IGNORECASE)'

最佳答案

您可以使用 re.escape 转义元字符从您的单词列表中形成一个正则表达式替换:

wordlist = ['Digital Forms', 'how', 'spousal', 'DF 2.0']
regex = r'\b(' + '|'.join([re.escape(x) for x in wordlist]) + r')\b'
words = df['col1'].str.findall(regex, flags=re.IGNORECASE)

关于python - 如何匹配字符串列表中的字符串并忽略正则表达式特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71346892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com