[英]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.