Java Regex无法将文本保存为字符串

时间:2015-07-21 19:36:21

标签: java regex

我正在尝试将粗体文本保存为字符串 我已经提出了正则表达式“routeName?。+?routeLengthKM”并且根据在线正则表达式测试器,这应该得到我想要的find方法,但它只返回true / false。如何将粗体文本保存为字符串?

“路线:[{ routeName:Dulles Toll Rd W; SR-28 S,routeDurationInMinutes:18 ,routeLengthKM:21.474,routeLengthMiles:13.343320854,toll​​:true},{ routeName: Frying Pan Rd; SR-28 S,routeDurationInMinutes:18 ,routeLengthKM:19.437,routeLengthMiles:12.077588127,toll​​:false}

package regex;
import java.util.regex.*;

public class regexclass {

  public static void main (String args[]){
    Pattern p= Pattern.compile("routeName?.+?routeLengthKM");
    Matcher m= p.matcher("routes:[{routeName:Dulles Toll Rd W; SR-28 S,routeDurationInMinutes:18,routeLengthKM:21.474,routeLengthMiles:13.343320854,toll:true},{routeName:Frying Pan Rd; SR-28 S,routeDurationInMinutes:18,routeLengthKM:19.437,routeLengthMiles:12.077588127,toll:false}]");
    System.out.println(m.find());

  }
}

1 个答案:

答案 0 :(得分:0)

m.find();将启动匹配引擎。这将尝试将正则表达式与文本进行匹配。如果找到匹配则返回true,如果找不到匹配则返回false。通常,您可以使用这样的结构来查找所有匹配项:

while(m.find()) {}

找到匹配项后(即m.find();或更好if (m.find()) {后),您可以使用m.group(n);检索与n组号匹配的匹配项。 0是完整匹配组,其中所有其他数字(1,2,3,...)指的是子组(括号中的内容)。