字符串模式^^ [Java]

时间:2016-04-04 14:28:58

标签: java regex

这是我的代码,它适用于-但不适用于^,我知道原因,但我不知道解决方案。

此代码有效,并为我提供“here”

String patternString = "(.*)--(.*)";

Pattern r = Pattern.compile(patternString);
Matcher m = r.matcher("here--asdfasdfasdfasdfasdfasdfasfd");

此代码给我“here”

String patternString = "(.*)^^(.*)";

Pattern r = Pattern.compile(patternString);
Matcher m = r.matcher("here^^asdfasdfasdfasdfasdfasdfasfd");

2 个答案:

答案 0 :(得分:2)

^替换为\\^,这是一个代表行首的特殊符号,因为MULTILINE修饰符未启用。此类符号(\.[]{}()*+-?^$|)必须在\\之前进行转义。

答案 1 :(得分:2)

您需要转义两个^个字符(或将它们分组),它们是正则表达式中的特殊字符。当我改变你的第二个例子时,

String patternString = "(.*)\\^\\^(.*)";

或喜欢

String patternString = "(.*)\\^{2}(.*)";

我得到你的(预期的)here