匹配括号内的IP和端口号

时间:2013-05-23 06:57:36

标签: regex

我正在尝试从给定字符串中单独获取IP地址和端口号。

STRING: 
(10.10.2.5:1567)

我需要O / P

10.10.2.5
1567

我是RegEx的新手,我正在使用的模式是

\(([\d.]+):\d+\).*

这个似乎选择10.10.2.5但未选择1567

3 个答案:

答案 0 :(得分:0)

使用此正则表达式:

\(([\d.]+):(\d+)\).*

它与你的正则数基本相同,有以下两个变化:

  1. 转义括号“(”和“)。
  2. 添加第二个捕获组以获取端口号。
  3. 因此$1将拥有IP地址,$2将拥有端口号。

答案 1 :(得分:0)

您可以使用此模式

\d+[.]\d+[.]\d+[.]\d+(:\d+)?

答案 2 :(得分:0)

您正在使用第一组

捕获IP地址
([\d.]+)

但不是港口。您需要另一对括号来定义第二组

\(([\d.]+):([\d]+)\).*

请注意,第一组也太通用了:它会接受任何数字和点的组合:

23424....2342423

有关更严格的表达,请参阅Regular expression to match DNS hostname or IP Address?