NLP:如何搜索带括号的字符串?

Posted

技术标签:

【中文标题】NLP:如何搜索带括号的字符串?【英文标题】:NLP: How do I search for a string that has brackets? 【发布时间】:2020-08-22 02:55:14 【问题描述】:

如果 col1 包含列表中的任何子字符串,我正在尝试过滤数据框。问题是一个子字符串包含导致错误的括号(图中以粗体显示)。有什么解决办法吗?谢谢!

index   fruit_name
0       "apple"
1       "pear"
2       "passionfruit (Passiflora)"
4       "grape"

substring_list = ['apple',**'(passiflora)'**]
df[df.fruit_name.str.contains('|'.join(substring_list))]

【问题讨论】:

【参考方案1】:

() 之类的括号是正则表达式中的特殊字符,因此您需要在它们之前使用反斜杠 \,例如:

df = pd.DataFrame('fruit_name': ["apple","pear","passionfruit (Passiflora)", "grape"])

substring_list = ['apple','\(passiflora\)']
print (df[df.fruit_name.str.contains('|'.join(substring_list), case=False)]) 
                  fruit_name
0                      apple
2  passionfruit (Passiflora)

【讨论】:

以上是关于NLP:如何搜索带括号的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何打印不带括号的字符串数组,以便可以在函数参数中使用

打印带字典/列表的字符串时如何防止打印括号和引号?

带 f 字符串的花括号 - ValueError:字符串格式说明符中不允许符号 [重复]

如何使用 Python 或 posix 工具搜索和替换字符串中的匹配括号

将带括号的字符串转换为numpy数组

正则表达式:用“|”匹配带括号的字符串运算符 [重复]