如何在java中提取与正则表达式匹配的模式

如何在java中提取与正则表达式匹配的模式,java,regex,Java,Regex,我在java中使用regex。我有一个文件,其中包含以下模式,后跟和后跟其他文本。模式: Bombay Garden 5995 Mowry Ave Newark, CA (510) 744-6945 Bombay Garden 172 E. 3rd Ave. San Mateo, CA (650) 548-9966 Bombay Garden 3701 El Camino Real Santa Clara, CA (408) 241-5150 我有下面

我在java中使用regex。我有一个文件,其中包含以下模式,后跟和后跟其他文本。模式:

    Bombay Garden 5995 Mowry Ave Newark, CA (510) 744-6945   
    Bombay Garden 172 E. 3rd Ave. San Mateo, CA (650) 548-9966   
    Bombay Garden 3701 El Camino Real Santa Clara, CA (408) 241-5150   
我有下面匹配每一行的正则表达式。正则表达式:

(.*?)(\d{1,4})(\s*\w*)*(\w+),(\s*)(CA|AZ|NY)(\s*)(\(?[1-9]\d{2}\)?\s*\d{3}-?\d{4})
这与一行匹配,但我想使用Java提取三个分支中每个分支的街道名称、州和电话号码


有人能帮我吗?

您可以使用
Matcher
对象的
group()

  Matcher m = Pattern.compile(yourRegex).matcher(yourString)
  while (m.find()) 
  {
      System.out.println(m.group(1));
      System.out.println(m.group(2));
      String state = m.group(6);
      ...
  }
组0是整个模式。组1是您的第一个捕获组,即在您的情况下
m.Group(6)
将返回状态。

@nem在Java中的oracle正则表达式教程中。祝你好运