我有一个字符串asd@12A/AXB25017/12A@£££
,我想从中提取12A/AXB25017/12A
我设计了一个regexp模式,如下所示
'.*(([A-Z0-9]+/)?[A-Z]{3}\d+(/[A-Z0-9]+)?)'
因为我可以有很多不同的字符串变体。我想提取的不同字母和数字的有效字符串变体可以是
1) AXB25017
2) 1/AXB25017
3) AXB25017/1
4) 1A/AXB25017
5) AXB25017/1A
6) EN/AXB25017
7) EN/AXB25017/1
当我这样做的时候
re.match('.*(([A-Z0-9]+/)?[A-Z]{3}\d+(/[A-Z0-9]+)?)',' @12A/AXB25017/12A@').group(1)
它没有找到初始的12A/
,但返回AXB25017/12A
我在模式中还缺少什么来正确捕捉12A/
正则表达式中的第一个可选部分
([A-Z0-9]+/)?
不匹配,因为在正则表达式中包含分隔符:
如果有可能在第二个分隔符后面添加材料,请将其添加到正则表达式中
。。。这可能会大大简化:
相关问题 更多 >
编程相关推荐