Java中的正则表达式,String.matches

时间:2014-05-13 22:04:16

标签: regex

public static boolean isPrime(int n) {
    return !new String(new char[n]).matches(".?|(..+?)\\1+");
}

https://stackoverflow.com/posts/4515687/revisions

这是做什么的?

".?|(..+?)\\1+"是否等于".?"

(我在这个网站上练习正则表达式http://regex101.com/r/jL7qD4

1 个答案:

答案 0 :(得分:0)

好的,让我们分解一下:

.?可选地匹配任何单个字符。所以这个语句将匹配空字符串或任何单个字符。

正则表达式中的

a|b是不同的选项 - 它与ab匹配。

最后一个条款(..+?)\\1+执行以下操作:

.匹配任何单个字符。

.+?非贪婪地匹配一个或多个字符。

\\1+匹配捕获组的内容(括号中的位)一次或多次。

所以,简单地说,不,.?|(..+?)\\1+.?不一样,而是一个超集(它将匹配所有.?将会更多)。< / p>