Java 对于中间字符串的长度,正则表达式模式失败
我需要检查用户提供的字符串是否以abc开头,以de结尾,中间有4个字符Java 对于中间字符串的长度,正则表达式模式失败,java,regex,Java,Regex,我需要检查用户提供的字符串是否以abc开头,以de结尾,中间有4个字符 "abc<4 characters>de". “abcde”。 我尝试使用模式(“^abc.*(4)de$” 但对于中间的4个字符,它失败了。模式是否有问题。使用此正则表达式: ^abc.{4}de$ {4}就是它看起来的样子:任何字符()正好4次。将()括号更改为{} ^abc.{4}de$ 这意味着匹配的单词应该以abc开头,以de结尾,中间应该有4个字符 一个更简单的解决方案是在开始和结束模式之间放
"abc<4 characters>de".
“abcde”。
我尝试使用模式(“^abc.*(4)de$”
但对于中间的4个字符,它失败了。模式是否有问题。使用此正则表达式:
^abc.{4}de$
{4}
就是它看起来的样子:任何字符(
)正好4次。将()
括号更改为{}
^abc.{4}de$
这意味着匹配的单词应该以abc开头,以de结尾,中间应该有4个字符
一个更简单的解决方案是在开始
和结束
模式之间放置一个
,以描述应该正好有四个字符:
^abc....de$
要说您需要四个字符,您可以使用以下其中一个:
"^abc.{4}de$"
"^abc....de$"
将RegEx修改为以下内容
Pattern p = Pattern.compile("^abc.{4}de$");
Matcher m = p.matcher("abc11111de");
boolean b = m.matches();
System.out.println(b);