Regex Reg表达式和可选匹配组

Regex Reg表达式和可选匹配组,regex,Regex,我遇到了一个问题,我的字符串可能有2或4个匹配组 2的文本如下所示 <FONT FACE="Arial,Helvetica" size=2>1260 CORONA POINTE STE 120<br/>CORONA, CA 92879<br/><br/></font></td></tr> 1260加利福尼亚州科罗纳角街120号科罗纳92879 四个比赛小组 <FONT FACE="Arial,Hel

我遇到了一个问题,我的字符串可能有2或4个匹配组

2的文本如下所示

<FONT FACE="Arial,Helvetica" size=2>1260 CORONA POINTE STE 120<br/>CORONA, CA  92879<br/><br/></font></td></tr> 
1260加利福尼亚州科罗纳角街120号科罗纳92879

四个比赛小组

<FONT FACE="Arial,Helvetica" size=2>4010 BARRANCA PKWY STE 120<br/>IRVINE, CA  92604<br/><A HREF = "pplinfo.asp?License_id=01241755">01241755</A> Oldhouse, Charles  - Branch/Division Manager<br><br/><br/></font>
4010加利福尼亚州欧文市巴兰卡PKWY街120号92604号查尔斯老屋-分行/部门经理

下面是我用来匹配4的正则表达式

<FONT FACE="Arial,Helvetica" size=2>(.*?)<br\/>(.*?)<br\/>.*License_id=(\d*).*<\/A>(.*?)<br>
(.*)(.*)。*许可证id=(\d*)。(.*)

有没有办法使这个表达式也与只有2的字符串匹配?

这个问题看起来非常熟悉

给你

(.*)
(.*)
(?:.*许可证id=(\d*)(?:.*(.*)
)?)?

格式化

 <FONT [ ] FACE="Arial,Helvetica" [ ] size=2>
 ( .*? )                       # (1)
 <br/>
 ( .*? )                       # (2)
 <br/> 
 (?:
      .* License_id=
      ( \d* )                       # (3)
      (?:
           .* </A>
           ( .*? )                       # (4)
           <br>
      )?
 )?

( .*? )                       # (1)

( .*? ) # (2)
(?: *License\u id= (\d*)#(3) (?: .* ( .*? ) # (4)
)? )?