[英]How to match string of a certain pattern but exclude one specific pattern?
我是 python 的新手。我需要匹配 pandas dataframe 的列名,其形式为: names_(one more additional word)
但是从这场比赛中,我需要跳过一个特定的列名names_info
假设数据的列名如下
"names_full" "names_first" "names_last" "names_attribute" "names_info" "address" "pin" "balance"
我设法在 python 中写了这么多:
colnames.str.contains(r"(names_)")
并且它在开始时给出所有带有“names_”的列。 如何从中跳过一个特定案例? 我是正则表达式的新手,所以请尽可能解释一下逻辑
您可以使用否定先行断言某些术语不会出现在names_
之后,例如
colnames.str.contains(r"names_(?!item$)")
这将匹配除names_item
之外的每个列名称(尽管它会匹配names_items
)。
此处使用的正则表达式模式表示匹配:
names_ column name starts with "names_"
(?!item$) what immediately follows is NOT "item"
请注意, names_items
以及包含item
后跟一个或多个字符的任何其他内容都是有效的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.