0

だから私は他の2つの単語の間に単語を取得する必要があります; パターンとマッチャーを使用しています。

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

この例では、Hello と Goodbye の間の単語を取得しており、機能しています。私がしたいのは、次のような Hello および GoodBye bye 変数を置き換えることです。

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

パターンにどのように記述するか 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 に答える