我需要以下正则表达式才能选择总大小为X的那些:
[[JN]*P?[JN]*]N
编辑:
e.g。为6:
我需要它来捕捉小组。
答案 0 :(得分:1)
你可以使用lookahead来检查长度,如下所示:
(?=^.{6}$)[[JN]*P?[JN]*]N
此外,您似乎有太多括号。要使表达式与您的示例匹配,您需要删除最外面的表达式:
(?=^.{6}$)[JN]*P?[JN]*N
Here是一个使用ideone的小型演示。
答案 1 :(得分:0)
您可以使用尺寸限制
\{5,10}
这样的东西限制了5~10的大小
你应该看一下,关于这个话题有很多回答的问题
答案 2 :(得分:0)
String test = "123456"
if(test.match("^\w{6,6}$")
{
//True if String has length of 6
}
答案 3 :(得分:0)
public class Main {
private static boolean match(String line) {
Pattern p = Pattern.compile("^(?=[JNP]{6}$)[JN]*P?[JN]*N$");
Matcher m = p.matcher(line);
return m.matches();
}
public static void main(String[] args) {
System.out.println(match("JJPN"));
System.out.println(match("JJPNNN"));
System.out.println(match("NNJNNN"));
System.out.println(match("NPJNJNN"));
System.out.println(match("NPJNJNNNN"));
}
}
出
false
true
true
false
false