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