我正在尝试在熊猫DataFrame中查找列col的格式为1234-XX-YYY的所有行,其中XX是任意两个大写字母(AZ)的占位符,而YYY是任何三个数字[0-9]。

到目前为止,这是我的代码

如何获得理想的结果?

df[df['col'].str.contains('^1234-\[A-Z]{2}\[d]{3}', na=False)]

最佳答案

当您转义打开的[时,您告诉正则表达式引擎将其作为文字字符进行匹配。如果希望-出现在字符串中的某个位置,则需要将其添加到模式中。另外,如果希望出现大写字母,则需要A-Z,而不是a-z

采用

^1234-[A-Z]{2}-[0-9]{3}$


细节


^-字符串开始
1234--文字字符串
[A-Z]{2}-两个大写字母
--连字符
[0-9]{3}-三位数
$-字符串结尾。

10-07 13:03
查看更多