选-选 或 123456-123456 可选 中国

2024-09-22 16:35:37 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的正则表达式非常有效

[\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


Tags: or工具文本basicdemolink数字payload
2条回答

您可以将regex的这部分:(?P<basic_weight>\d\d\d\d\d\d)\/(?P<payload>\d\d\d\d\d[\d]?),更改为:

 (?P<basic_weight>\d\d\d\d\d\d|?P<basic_weight>-{5})\/(?P<payload>\d\d\d\d\d[\d]|?P<basic_weight>-{5}),

在这里,您使用|“pipe”操作符使五位数成为可选的。你知道吗

|(管道)用于或。你知道吗

我还将一些\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是可选的)

相关问题 更多 >