首页 > 解决方案 > 使用列表匹配包含整个单词的正则表达式

问题描述

我有下面的代码有效

lista= ['abd','bda']
for element in lista:
    df[element] = df['concatenated_string'].str.contains(element, regex=True)

df
          concatenated_string
0         abdar___
1         abd___
2         asd_ab_ad______

我怎么能匹配整个单词呢?因此,不应选取 concatenated_string 列中“abdar”的值。我试过了:

for element in lista:
    df[element] = df['concatenated_string'].str.contains("\b(element)\b", regex=True)

标签: pythonpython-3.xpandasdataframe

解决方案


尝试f-string文字字符串插值

df = pd.DataFrame({"a":["I was", "I wasn't"]})
els = ["was"]

for element in els:
    df["element"] = df["a"].str.contains(f"\\b{element}\\b", regex=True)
    
df
          a  element
0     I was     True
1  I wasn't    False

推荐阅读