Skip to main content
 首页 » 编程设计

python之------/------ 或 123456/123456 可选字符的正则表达式

2025年05月04日25thcjp

下面的正则表达式完美运行

[\s\S]*[0RECALL]?[\s\S]\d(?P<fpName>[R|U|J|L|I|N]\d\d\d\d),(?P<fpReceivedTimestamp>\d\d\/\d\d\/\d\d,\d\d\d\d)Z,[^,]*,(?P<basic_weight>\d\d\d\d\d\d)\/(?P<payload>\d\d\d\d\d[\d]?), 

对于

0RECALL,J2516\n1J2516,04/20/16,1336Z,N103XA /CL30   ,123456/123456, 

但我需要一个正则表达式,其中 最后的数字是可选的 123456/123456 或 ------/------

所以文本可以是

0RECALL,J2516\n1J2516,04/20/16,1336Z,N103XA /CL30   ,123456/123456, 
 
or  
 
0RECALL,J2516\n1J2516,04/20/16,1336Z,N103XA /CL30   ,------/------, 

我应该对正则表达式做哪些更改。目前我正在使用下面的在线工具寻求帮助

DEMO LINK

请您参考如下方法:

| (管道)用于 OR。

我还将一些\d\d​​\d\d\d\d 替换为 [\d]{6}

[\s\S]*[0RECALL]?[\s\S]\d(?P<fpName>[R|U|J|L|I|N]\d\d\d\d),(?P<fpReceivedTimestamp>\d\d\/\d\d\/\d\d,\d\d\d\d)Z,[^,]*,(?P<basic_weight>(\d\d\d\d\d\d)|[-]{6})\/(?P<payload>([\d]{5,6})|[-]{5,6}), 

编辑:

  • 你可以做 (?P(foo)|(bar)) 来匹配名称中的 foo 或 bar
  • 您可以使用 [\d]{n,m} 来匹配一个 n 到 m 位的数字(m 是可选的)