所以,我想从字符串中提取引号(“)中的单词(或短语)
例如,假设主字符串是:
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。我感觉我的正则表达式无法正常工作。 任何帮助表示赞赏。
答案 0 :(得分:5)
您的代码缺少一些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
答案 1 :(得分: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("\"", ""));