Regex 正则表达式可以选择匹配url中的端口号
我有一个类似于Regex 正则表达式可以选择匹配url中的端口号,regex,powershell,Regex,Powershell,我有一个类似于http:\/\/(?[^”]+):(?[^”]+)的正则表达式来从url中选择服务器和端口。当url中存在端口时,这可以正常工作,但当端口号不存在时,它也与服务器不匹配。 比如说, Url -> http://Server1:20 Values Returned ServerName = Server1 Port = 20 Url -> http://Server2 Values Returned ServerName = blank Port = blan
http:\/\/(?[^”]+):(?[^”]+)
的正则表达式来从url中选择服务器和端口。当url中存在端口时,这可以正常工作,但当端口号不存在时,它也与服务器不匹配。
比如说,
Url -> http://Server1:20
Values Returned ServerName = Server1 Port = 20
Url -> http://Server2
Values Returned ServerName = blank Port = blank
对于第二种情况,我希望得到值ServerName=Server2 Port=blank,您可以根据需要修改正则表达式
^http:\/\/(?<Servername>[^:]+)(:(?<Port>.+))?$
^http:\/\/(?[^::]+)(:(?。+)$
例如:
所做的更改
匹配除[^::::+
以外的任何内容。此部分与:
Servername
匹配后跟(:(?。+)?
的任何内容。此部件与:
端口号匹配
限定符,限定Portnumber的零次或一次出现?
(?我试过了,但在url中同时存在服务器和端口的情况下不起作用。@Nadeem您使用的是哪种语言?我使用的是powershell@Nadeem它在regex101中工作,您的字符串与提供的输入相同吗?这是很好的工作regex+1。它应该在任何regex工具中工作。
(?<=\/\/)([^:]+):?(.*)