这个正则表达式错在哪里:matches("\\d+\\s+([a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+)")

来源:百度知道 编辑:UC知道 时间:2024/05/31 18:51:40

错在, 后面那段永远匹配不到

1 a 将匹配, 1 a b 将只匹配到 1 a ,还是匹配前面的.不会整个匹配.

这段

[a-zA-Z]+\\s[a-zA-Z]+

这段将永远匹配不到. 因为,只有 [a-zA-Z]+ 匹配失败的时候, 才会去试一下能不能匹配 [a-zA-Z]+\\s[a-zA-Z]+ 如果连 [a-zA-Z]+ 都匹配不到,那又怎么可能匹配到 [a-zA-Z]+\\s[a-zA-Z]+ 呢.

兄弟,下次给点分吧,不然,看看那些人的热情跑哪去了.

注: | 或 字符, 通常我们理解为, | 字符两边的东西,只要有一边匹配就行了.实则不是. | 是 如果语句,如果|前面的不匹配,才会去匹配后面的. 前面的匹配了,就不会去匹配后面的.

matches("\\d+\\s+([a-zA-Z]|[a-zA-Z]+\\s[a-zA-Z]+)")