正则表达式模式因中间字符串的长度而失败

时间:2013-05-22 10:17:11

标签: java regex

我需要检查用户提供的字符串是否以 abc 开头,并以 de 结尾,中间有4个字符,如

"abc<4 characters>de".

我尝试使用模式(“^ abc。*(4)de $”)

但是中间的4个字符失败了。模式是否有任何问题。

4 个答案:

答案 0 :(得分:3)

要说你需要四个字符,你可以使用其中一个:

"^abc.{4}de$"
"^abc....de$"

答案 1 :(得分:2)

使用()

更改{}括号
^abc.{4}de$

表示匹配的单词应以 abc 开头,以 de 结尾,中间应该有4个字符。

更简单的解决方案是在.start模式之间放置end来描述应该只有四个字符:

^abc....de$

答案 2 :(得分:1)

使用此正则表达式:

^abc.{4}de$

.{4}正是它的样子:任何字符(.)正好4次。

答案 3 :(得分:1)

将RegEx修改为以下

Pattern p = Pattern.compile("^abc.{4}de$");
         Matcher m = p.matcher("abc11111de");
         boolean b = m.matches();
         System.out.println(b);