繁体   English   中英

如何使用正则表达式提取 substring

[英]How to extract substring with regex

我有如下的 SKU:

SBC225SLB32
SBA2161BRB30
PBA632AS32

其中前3-4个字符为AZ,必须提取,后面3-4个数字为[0-9],也必须提取。

第一次,我尝试了\D{3,4} ,第二次,我尝试了\d{3,4}

但是当使用 pandas' .str.extract('\D{3,4}')时,我得到一个pattern contains no capture groups错误。 有一个更好的方法吗?

您传递给Series.str.extract的正则表达式模式不包含捕获组,而该方法至少需要一个。

在您的情况下,在两个捕获组的帮助下一次获取两个值会更方便。 您可以使用

df[['Code1', 'Code2']] = df['SKU'].str.extract(r'^([A-Z]{3,4})([0-9]{3,4})', expand=False)

请参阅正则表达式演示 图案细节:

  • ^ - 字符串的开始
  • ([AZ]{3,4}) - 捕获第 1 组:三到四个大写 ASCII 字母
  • ([0-9]{3,4}) - 捕获第 2 组:三到四个大写 ASCII 数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM