[英]Get a substring from string multiple times
我有一个字符串,我不知道它有多长时间或在其中使用了哪些字符。 我想搜索字符串并获取在“”内找到的任何子字符串。 我尝试使用pattern.compile,但它总是返回一个空字符串
Pattern p = Pattern.compile("\".\"");
Matcher m = p.matcher(mystring);
while(m.find()){
System.out.println(m.group().toString());
}
我该怎么做?
使用.+?
通过分组获取""
内的所有字符
Pattern p = Pattern.compile("\".+?\"");
.+
指定您希望引号内至少包含一个或多个字符。 ?
指定它是一个勉强的量词,这意味着它将不同的报价放在不同的组中。
单元测试示例:
@Test
public void test() {
String test = "speak \"friend\" and \"enter\"";
Pattern p = Pattern.compile("\".+?\"");
Matcher m = p.matcher(test);
while(m.find()){
System.out.println(m.group().toString().replace("\"", ""));
}
}
输出:
friend
enter
这是因为您的正则表达式实际上是在“和”之间搜索一个字符。如果您要搜索更多字符,则应将正则表达式重写为"\\".?\\""
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.