正则表达式匹配所有特定字符串或至少一个

时间:2017-05-04 16:19:27

标签: regex perl

我一直在尝试这个约2个小时。我无法得到解决方案。这是我的问题。

测试字符串:

abc.1.2.4.6.8.10.9.8.7.10.12345 = WORDS: "ABC|1A|CDE-FGH|password:FSSAD234SD2|cgap:234-34/23/23"

正则表达式:

9\.8\.7\.10\.(\d+) = (?:WORDS: )?"[^"]*(?:password:([A-Za-z0-9\.\-]+))

这将匹配12345和密码字符串FSSAD234SD2

但有时候我不会得到密码字符串,所以测试字符串如下,

abc.1.3.5.7.9.11.9.8.7.10.12345 = "" 

所以我想至少匹配12345

在线正则表达式网址:

https://regex101.com/r/kQ3wT5/12 - 工作正常。

https://regex101.com/r/kQ3wT5/13 - 不行。

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

此正则表达式使密码部分可选。并像你一样以小组形式捕捉。

正则表达式: \.(\d+)\s*=(?:.*?password:([^|]*))?

<强> Regex101 Demo

答案 1 :(得分:2)

我想出了这个正则表达式:

GeometryGraphCreator.ProcessSubgraphs

如果您需要任何精确度,请询问!