0

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

STRING: 
(10.10.2.5:1567)

我需要 O/P 作为

10.10.2.5
1567

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

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

这个似乎选择10.10.2.5但没有选择1567

4

3 回答 3

0

您正在使用第一组捕获 IP 地址

([\d.]+)

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

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

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

23424....2342423

请参阅正则表达式以匹配 DNS 主机名或 IP 地址?为了更严格的表达

于 2013-05-23T07:01:20.423 回答
0

使用这个正则表达式:

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

它与您的正则表达式基本相同,但有以下 2 处更改:

  1. 转义括号“(”和“)。
  2. 添加第二个捕获组以获取端口号。

所以$1会有IP地址和$2端口号。

于 2013-05-23T07:00:00.220 回答
0

您可以使用此模式

\d+[.]\d+[.]\d+[.]\d+(:\d+)?
于 2013-05-23T07:00:53.337 回答