我正在尝试以“迭代方式”验证字符串,但我所有的尝试都失败了!我觉得它有点复杂,我猜也许你可以教我如何正确地做。我假设你们中的大多数人会建议我使用正则表达式模式,但我真的不知道如何,一般来说,如何为无限“集合”定义正则表达式?
我要验证的字符串是“ANYTHING|NUMBER_ONLY,ANYTHING|NUMBER_ONLY...”
例如:“hello|5,word|10”和“hello|5,word|10”都是有效的。
注意:我不介意字符串是否以逗号“,”结尾。
我建议通过|
分隔符将您的字符串拆分为数组。并分别验证每个部分。每个部分(第一个除外)应匹配以下模式\d+(,.*)?
更新
拆分,
并验证每个部分.*|\d+
Kleene 星号( *
) 允许您在正则表达式中定义“无限集”。以下模式应该可以解决问题:
[^,|]+\|\d+(,[^,|]+\|\d+)*,?
A----------B--------------C-
A 部分匹配第一个元素。B 部分匹配任何以下元素(注意星号)。C 部分是末尾的可选逗号。
警告:记住在 Java 字符串中转义反斜杠。