正则表达式根据条件返回值

时间:2013-02-01 18:20:28

标签: regex regex-lookarounds

我需要用正则表达式解析两个可能的输入:

  

192.168.1.1:80 [172.16.1.1:8080]

  

192.168.1.1:80 [172.16.1.1]

如果:8080存在,我想返回8080,但如果不是,我想返回80.

这可能吗?

由于

1 个答案:

答案 0 :(得分:0)

你可以用积极的外观和消极的前瞻来做这件事。

(?<=:)\d+(?!.*:\d+)

您可以使用

 .*:(\d+)

第1组捕获你想要的东西