如何为表达式创建模式带有+和:(例如:Pattern.compile(“+:”))

时间:2016-05-26 08:35:08

标签: java

当我创建模式时 - Pattern.compile("+:")以提取以下行的信息

Pattern pattern = Pattern.compile("+:");
String fields[] = pattern.split( "UNB+UNOA:1+KRR+KRR+050313:1257+1+++++KRR");

Pattern.compile("+:");行显示悬空的元字符错误。

如何解决?

感谢。

2 个答案:

答案 0 :(得分:1)

你应该用反斜杠转义元字符。由于反斜杠本身需要在Java中转义,因此您需要重复它:

Pattern pattern = Pattern.compile("\\+:");

答案 1 :(得分:0)

您也可以使用引用的版本:

    String quotedPlus = Pattern.quote("+");
    Pattern pattern = Pattern.compile(quotedPlus + ":");
    String str = "3+:";
    System.out.println(pattern.matcher(str).find()); // true

您可以在this SO question上看到更多内容。