0

我想匹配这个:

01+WhATEver 02+0.1 03+12.1\r\n

或这个

01+WhATEver 02+0.1\r\n

在我以任何顺序解析的字符串中出现这样

01+WhATEver 02+0.1 03+12.1\r\n01+WhATEver 02+0.1 03+12.1\r\n01+WhATEver 02+0.1 03+12.1\r\n

01-02 是必需的,03 是可选参数。索引看起来像“01+”,后面可以跟这样的减号。

01+WhATEver 02+-0.1\r\n

我能够解析强制索引和变量,但不包括可选索引和变量...因为如果丢失它将不匹配。

01\\+\\s*(?<1>[.0-9A-Za-z]*)\\s*02\\+\\s*(?<2>[.0-9]*)\\s*03\\+\\s*(?<3>[.0-9]*)\\s*

我需要的是一个正则表达式,它将与包含许多此类子字符串的字符串中的 01-02 索引或 01-03 匹配。

4

1 回答 1

1

你不能让那个组是可选的吗?像这样:

"01\\+\\s*(?<1>[.0-9A-Za-z]*)\\s*02\\+\\s*(?<2>[.0-9]*)(\\s*03\\+\\s*(?<3>[.0-9]*)\\s*)?"
                                                       ^                              ^^

(我在添加到正则表达式中的字符下划线。)

于 2013-04-15T16:23:19.293 回答