0

我正在尝试以“迭代方式”验证字符串,但我所有的尝试都失败了!我觉得它有点复杂,我猜也许你可以教我如何正确地做。我假设你们中的大多数人会建议我使用正则表达式模式,但我真的不知道如何,一般来说,如何为无限“集合”定义正则表达式?

我要验证的字符串是“ANYTHING|NUMBER_ONLY,ANYTHING|NUMBER_ONLY...”

例如:“hello|5,word|10”和“hello|5,word|10”都是有效的。

注意:我不介意字符串是否以逗号“,”结尾。

4

2 回答 2

1

我建议通过|分隔符将您的字符串拆分为数组。并分别验证每个部分。每个部分(第一个除外)应匹配以下模式\d+(,.*)?

更新

拆分,并验证每个部分.*|\d+

于 2012-04-17T07:00:03.050 回答
1

Kleene 星号( *) 允许您在正则表达式中定义“无限集”。以下模式应该可以解决问题:

[^,|]+\|\d+(,[^,|]+\|\d+)*,?
A----------B--------------C-

A 部分匹配第一个元素。B 部分匹配任何以下元素(注意星号)。C 部分是末尾的可选逗号。

警告:记住在 Java 字符串中转义反斜杠。

于 2012-04-17T07:15:29.277 回答