0

所以我需要在另外两个词之间找到一个词;我使用模式和匹配器。

Pattern p = Pattern.compile("Hello(.*?)GoodBye");
Matcher m = p.matcher(line);

在这个例子中,我得到了 Hello 和 Goodbye 之间的词,它起作用了。我想要做的是替换 Hello 和 GoodBye bye 变量,例如:

String StartDelemiter = "Hello";
String EndDelemiter = "GoodBye";

应该如何写在 Pattern p = Pattern.compile(---); 我试过了 :

Pattern p = Pattern.compile( "{ "+StartDelemiter +" (.*?) "+EndDelemiter+" }"  );

但应用程序崩溃!

4

1 回答 1

3

您需要转义{}使用反斜杠,例如:

Pattern p = Pattern.compile( "\\{ "+StartDelemiter +" (.*?) "+EndDelemiter+" \\}"  );

花括号是正则表达式量词

<pattern>{n}    Match exactly n times 
<pattern>{n,}   Match at least n times 
<pattern>{n,m}  Match at least n but not more than m times
于 2013-06-05T12:32:33.677 回答