我正在尝试在熊猫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}
-三位数$
-字符串结尾。