Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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,我有一段Java代码: Pattern p = Pattern.compile("* bar"); Matcher m = p.matcher("foo bar"); System.out.println(m.find()); 但是,当我运行它时,会出现以下错误: 线程“main”java.util.regex.PatternSyntaxException中出现异常:在索引0附近挂起元字符“*” *酒吧 ^ 不知道为什么会发生这种情况,就像我用Pattern p=Pattern.compile

我有一段Java代码:

Pattern p = Pattern.compile("* bar");
Matcher m = p.matcher("foo bar");
System.out.println(m.find());
但是,当我运行它时,会出现以下错误:

线程“main”java.util.regex.PatternSyntaxException中出现异常:在索引0附近挂起元字符“*” *酒吧 ^

不知道为什么会发生这种情况,就像我用
Pattern p=Pattern.compile(“foo*”)替换
Pattern p=Pattern.compile(“foo*”)时那样

一切都按预期工作,控制台输出true。

*
在正则表达式中有一个重复次数为零或更多的值(例如,aka空字符串、
x
xx
等都将由
x*
匹配)

在开始时,正则表达式引擎不知道要重复什么,因此会出现错误。在第二个示例中,您说的是
foo
,后跟零个或多个空格


如果你想匹配一个文本
*
,你必须对它进行转义-
\*

*
在正则表达式中有一个重复零次或多次的字符串(例如,也就是空字符串,
x
xx
等等都将由
x*
匹配)

在开始时,正则表达式引擎不知道要重复什么,因此会出现错误。在第二个示例中,您说的是
foo
,后跟零个或多个空格


如果你想匹配一个文本
*
,你必须对它进行转义-
\*

*
在正则表达式中有一个重复零次或多次的字符串(例如,也就是空字符串,
x
xx
等等都将由
x*
匹配)

在开始时,正则表达式引擎不知道要重复什么,因此会出现错误。在第二个示例中,您说的是
foo
,后跟零个或多个空格


如果你想匹配一个文本
*
,你必须对它进行转义-
\*

*
在正则表达式中有一个重复零次或多次的字符串(例如,也就是空字符串,
x
xx
等等都将由
x*
匹配)

在开始时,正则表达式引擎不知道要重复什么,因此会出现错误。在第二个示例中,您说的是
foo
,后跟零个或多个空格


如果要匹配文本
*
,则必须对其进行转义-
\\*

*
在正则表达式中表示前面符号的零次或多次重复。由于未指定任何前面的符号,因此会出现错误。您可以使用
表示任何字符。因此,对于您的用例,您可以将您的正则表达式写成
*bar

*
,在正则表达式中,表示前面符号的重复次数为零或更多。由于未指定任何前面的符号,因此会出现错误。您可以使用
表示任何字符。因此,对于您的用例,您可以将您的正则表达式写成
*bar

*
,在正则表达式中,表示前面符号的重复次数为零或更多。由于未指定任何前面的符号,因此会出现错误。您可以使用
表示任何字符。因此,对于您的用例,您可以将您的正则表达式写成
*bar

*
,在正则表达式中,表示前面符号的重复次数为零或更多。由于未指定任何前面的符号,因此会出现错误。您可以使用
表示任何字符。因此,对于您的用例,您可以将正则表达式编写为
*bar

@bowTI,您可以使用
bar$
$
是行尾的锚点。@bowTI,另外,如果您想使整个字符串与其匹配,可以使用
*bar$
。您也可以引用。@bowTI,您可以使用
bar$
$
是行尾的锚点。@bowTI,另外,如果您想使整个字符串与其匹配,可以使用
*bar$
。您也可以引用。@bowTI,您可以使用
bar$
$
是行尾的锚点。@bowTI,另外,如果您想使整个字符串与其匹配,可以使用
*bar$
。您也可以引用。@bowTI,您可以使用
bar$
$
是行尾的锚点。@此外,如果要使整个字符串与其匹配,可以使用
*bar$
。也可以引用。