gpt4 book ai didi

python - 如何使用正则表达式和精确文字匹配的混合来获取索引值

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:59 25 4
gpt4 key购买 nike

我有一个可以从下面给出的代码创建的数据框

 df2= pd.DataFrame({'level_0': ['No case 
notes','Notes','1.Chinese','2.Widowed','No']})

如下图所示

enter image description here

我还有一个输入列表,如下所示

input_terms = ['No','Widowed','Chinese']

我想在数据框中搜索这些术语并获取它们的索引。

我怎样才能让我的输出像这样

[4,3,2] - #This is the output index list from dataframe for my input terms

如您所见,我不希望结果集包含术语“No case notes”、“Notes”,尽管它们包含“No”作为其字符串的一部分 - 我在这里进行精确匹配

但是对于输入术语“Chinese”和“Widowed”,我希望结果集包括“1.Chinese”和“2.Widowed” - 这里我对 str.contains 方法感兴趣

如何混合使用精确和正则表达式/str.contains 方法来搜索字符串?

最佳答案

试试这个正则表达式:

^[^a-zA-Z]*XXX[^a-zA-Z]*$

XXX 替换为搜索词(记得转义它们!)。例如:

^[^a-zA-Z]*(?:Chinese|No|Widowed)[^a-zA-Z]*$

这是 str.contains 和精确匹配的混合体。它基本上会忽略某些字符(在这种情况下,所有不是 a-zA-Z 的字符),并进行精确匹配。如果要忽略一组不同的字符,只需更改两端的两个字符类即可。例如,如果您也想忽略空格:

^[^a-zA-Z\s]*XXX[^a-zA-Z\s]*$

关于python - 如何使用正则表达式和精确文字匹配的混合来获取索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56454860/

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