在Python pandas中使用regex查找数字和字母组合的特定字符序列

1 人关注

我试图在一个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)]
    
2 个评论
Use '^1234-[A-Z]{2}-[0-9]{3}$'
@WiktorStribiżew 谢谢你,它的工作。
python
regex
string
pandas
contains
lala_12
lala_12
发布于 2019-12-02
1 个回答
Wiktor Stribiżew
Wiktor Stribiżew
发布于 2019-12-03
已采纳
0 人赞同

当你转义一个开放的 [ 时,你告诉重码引擎将其作为一个字面字符来匹配。如果你希望 - 出现在字符串的某个地方,你需要把它添加到模式中。另外,如果你希望出现大写字母,你需要 A-Z ,而不是 a-z

^1234-[A-Z]{2}-[0-9]{3}$
  • ^ - start of string
  • 1234- - a literal string
  •