递归检查字符串重复模式?

时间:2015-07-31 07:31:20

标签: java regex string

对不起,如果这是重复但我找不到任何东西。

我想以递归方式检查以下模式的字符串

[a-z0-9][:][a-z0-9][&][a-z0-9][:][a-z0-9]...

例如

foo:bar&foo:bar1&foo:bar&foo:111&bar:2A2... 

是否可以使用正则表达式,如果有的话,任何人都可以向我展示一个正则表达式?

如果有一个有效的java方法,它也会很好。

3 个答案:

答案 0 :(得分:2)

只需将模式放在具有前一个&的组中,然后使其重复零次或多次。

^[a-z0-9]+:[a-z0-9]+(?:&[a-z0-9]+:[a-z0-9]+)*$

如果您使用matches方法,则无需使用锚点。

DEMO

答案 1 :(得分:2)

假设您想要匹配整个字符串:

(\w+:\w+(?:&\w+:\w+)*)

a demo

Regular expression visualization

Debuggex Demo

答案 2 :(得分:1)

如果您想多次将value:value&作为唯一元素进行匹配,

(([a-z0-9]+:)([a-z0-9]+&))+

注意:它不匹配value:value&value:value&value&value:等。