2

そのため、文字列から引用符 (") 内の単語 (または句) を抽出しようとしています。
たとえば、主な文字列が次の
The quick brown fox "jumped over" the "lazy" dog
ようになっているとします。単語/句を抽出して変数に格納できるようにしたいと考えています。
jumped over
lazy
入力文字列は、引用符で囲む場合にのみ二重引用符になります (単一引用符は使用できません)。
これについては、次の (大まかな) コードを試しました 。

Pattern p = Pattern.compile("\\s\"(.*?)\"\\s");
Matcher m = p.matcher(<String>);
Variable.add(m.group(1));

何を入力しても IllegalStateException がスローされます。正規表現が正しく機能していないと感じています。どんな助けでも大歓迎です。

4

2 に答える 2

6

あなたのコードには、仕事をするものが欠けているif( m.matches())か...m.find()

このコード:

String in = "The quick brown fox \"jumped over\" the \"lazy\" dog";
Pattern p = Pattern.compile( "\"([^\"]*)\"" );
Matcher m = p.matcher( in );
while( m.find()) {
   System.err.println( m.group( 1 ));
}

出力:

jumped over
lazy
于 2012-11-10T09:14:10.947 に答える
0
String s = "The quick brown fox \"jumped over\" the \"lazy\" dog";
String lastStr = new String();

Pattern pat = Pattern.compile("\".*\"");
Matcher mat = pat.matcher(s);

while (mat.find()) {

 lastStr = mat.group();

}

System.out.println(lastStr.replace("\"", ""));
于 2012-11-10T10:03:58.527 に答える