Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对于中间字符串的长度,正则表达式模式失败_Java_Regex - Fatal编程技术网

Java 对于中间字符串的长度,正则表达式模式失败

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开头,以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);