我想检查字符串String s = "a=182 b=41 c=72"
是否仅包含:a b c及其各自的值,但是它们可以随机顺序出现。我该怎么做?
我尝试执行以下操作:
(?=a\\=(\\d+))\\s+(?=b\\=(\\d+))\\s+(?=c\\=(\\d+))
答案 0 :(得分:2)
尝试此正则表达式:
^(?:(\\s*[abc]=)(?!.*\\1)\\d+){3}$
说明:
^
-断言行的开头(?:(\\s*[abc]=)(?!.*\\1)\\d+){3}
(\\s*[abc]=)
-匹配0+次出现的空格,后跟a
或b
或c
,后跟=
。整个子比赛在第1组中捕获。(?!.*\\1)
-否定超前查询,以确保当前匹配项后跟字符串1中任何位置的第1组的内容都不会跟随\\d+
-匹配1个以上的数字{3}
-为a
,b
,c
$
-声明行的结尾答案 1 :(得分:0)
如果您的字符串始终包含空格,则可以将其分成这样的数组
String[] words = s.split(" ");
,然后检查每个数组元素的第一个字符。