Pandas Str Regex替换Word以外的字符

ktca8awb  于 2023-06-20  发布在  其他
关注(0)|答案(1)|浏览(125)

我有一个Pandas DataFrame列,其值如下所示:
| 姓名|
| - -----|
| 比萨饼名称在这里ZZ HELLO|
| 你好ZZZZZZ世界|
我想找出两个或更多个Z的所有示例,而不确定某个单词,在这种情况下是PIZZA。我会使用.str.replace(regex,"")将其替换为空白。最终结果如下所示:
| 姓名|
| - -----|
| 比萨饼名称在这里你好|
| 你好世界|
不是最好的理解正则表达式,但以下并不像我想象的那样对我有用,因为它仍然检测PIZZA中的ZZ。

^((?!.*PIZZA.*).)*$|Z{2,}
ohfgkhjo

ohfgkhjo1#

您可能需要考虑使用单词边界标记,例如使用以下模式\bZ{2,}\b。但是,如果你只是做.str.replace(regex,""),它将导致一个双空格,即。PIZZA NAME HERE HELLO
简单的解决方法是将边界标记更改为空白标记,即\sZ{2,}\s。这将删除两个空格,因此需要.str.replace(regex," ")来代替,并且在字符串的开头和结尾处也失败。
因此,为了解决字符串的开始/结束问题,我们可以使用(?:\s|\b)Z{2,}(?:\s|\b)组合这两个方法。
Regex101 link

相关问题