Regex Java总字符串长度

时间:2014-08-28 08:51:20

标签: java regex expression limit

我需要以下正则表达式才能选择总大小为X的那些:

[[JN]*P?[JN]*]N

编辑:

e.g。为6:

  • JJPNNN - > JJPNNN
  • ONNJNNNO - > NNJNNN
  • NPJNJNN - > NPJNJN,PJNJNN
  • NPJNN - >假

我需要它来捕捉小组。

4 个答案:

答案 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