所以我需要在另外两个单词之间找到一个单词;我正在使用模式和匹配器。
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+" }" );
但是应用程序崩溃了!!
最佳答案
您需要使用反斜杠转义 {
和 }
,例如:
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
关于java - 在模式中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16939987/