我在网上发现了这个小东西(.*)((?::))((?:[0-9]+))$
这将分割 IP 地址和端口。
eg.
[ab:cd::0]:22
host.domain.com:443
1.2.3.4:22
但是,它需要这种格式,不关心其他格式。
因此我做了一个小小的改变(.*)((?::))((?:[0-9]+))?$
,然后仅包含可用的端口。
现在,URI 可以使用三种格式:
host.domain.com
host.domain.com:
host.domain.com:port
我有点迷失在这里。因为在添加时?
对于第二组(.*)((?::))?((?:[0-9]+))?$
整个正则表达式被贪婪吃掉了(.*)
.
知道如何以好的方式处理这个问题吗?
BR
Patrik
您可以使用
^(.*?)(?:(:)([0-9]*))?$
See the 正则表达式演示 https://regex101.com/r/pe1snf/1.
Details
-
^
- 字符串的开头
-
(.*?)
- 第 1 组:除了换行符之外的任何零个或多个字符,尽可能少
-
(?:(:)([0-9]*))?
- an optional sequence of
-
(:)
- 第 2 组:冒号
-
([0-9]*)
- 第 3 组:零个或多个数字
-
$
- 字符串末尾。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)