Java 如何匹配像“quot;[$first-last.something.random.more:junk]”这句话的意思是;使用正则表达式
我希望能够满足以下条件:Java 如何匹配像“quot;[$first-last.something.random.more:junk]”这句话的意思是;使用正则表达式,java,regex,Java,Regex,我希望能够满足以下条件: [$first-last.something.random.more:junk] $first last必须是$first last或$cat dog(精确的字符串匹配) 。某些内容可以是a-z(上限或下限)范围内的任何值,包括-,但不能包含其他字符。可能有一个或多个链接值(.something.something.something) 更多:最后的垃圾。必须后跟a:后跟一个包含a-z(上限或下限)以及z的值 步骤1-3可以重复任意次数,以逗号分隔 步骤1-4必须用方
[$first-last.something.random.more:junk]
[$first-last.something.random.more:junk] [correct]
[$first-last.some.more:junk, $first-last.more:values] [correct]
[$first-last.some.more:junk, $first-last.more:values]
[$first-last.single.correct:type] [correct]
[$blah-garbage.some.more:junk, $first-last.more:values] [incorrect]
[$first-last.some.more, $first-last.more:values] [incorrect]
到目前为止,我得到的是:
^\s*(\[\$[first\-last|cat\-dog]+(\.[a-zA-Z0-9---_]+)+\s*:\s*+[a-zA-Z0-9---_]+(?:,\s*\$[first\-last|cat\-dog]+(\.[a-zA-Z0-9---_]+)+\s*:\s*+[a-zA-Z0-9---_]+)\]\s*)\s*$
这不适用于这种情况:
[$first-last.some.more:junk, $first-last.more:values]
[$first-last.single.correct:type]
它在Java中也无法工作。没有错误,它只是说无法找到匹配项,即使它是有效的,并且可以在以下网站上找到匹配项:尝试以下正则表达式:
\[(?:\$first-last|cat-dog)(?:\.[\w-]+)+[\w-]+:[\w-]+(?:,\s*(?:\$first-last|cat-dog)(?:\.[\w-]+)+[\w-]+:[\w-]+)*\]
请参见尝试以下正则表达式:
\[(?:\$first-last|cat-dog)(?:\.[\w-]+)+[\w-]+:[\w-]+(?:,\s*(?:\$first-last|cat-dog)(?:\.[\w-]+)+[\w-]+:[\w-]+)*\]
看