在 Python pandas 中使用正则表达式查找组合数字和字母的特定字符序列

Find specific sequence of characters combining number and letters using regex in Python pandas

我正在尝试查找 pandas DataFrame 中的所有行,其中 col 列采用 1234-XX-YYY 格式的值,其中 XX 是占位符任意两个大写字母 (A-Z) 和 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} - 三位数
  • $ - 字符串结尾。