给定URL(单行):
http://test.example.com/dir/subdir/file.html
http://test.example.com/dir/subdir/file.html
如何使用正则表达式提取以下部分:
>子域(测试)
>域(example.com)
>没有文件的路径(/ dir / subdir /)
>文件(file.html)
>文件的路径(/dir/subdir/file.html)
>没有路径的网址(http://test.example.com)
>(添加您认为有用的任何其他)
正则表达式应该正常工作,即使我输入以下URL:
http://example.example.com/example/example/example.html
谢谢。
A single regex to parse and breakup a
full URL including query parameters
and anchors e.g.07000
^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$
RexEx positions:
url: RegExp[‘$&’],
protocol:RegExp.$2,
host:RegExp.$3,
path:RegExp.$4,
file:RegExp.$6,
query:RegExp.$7,
hash:RegExp.$8
你可以进一步解析主机(‘。’分隔)很容易。
我会做的是使用这样的东西:
/* ^(.*:)//([A-Za-z0-9\-\.]+)(:[0-9]+)?(.*)$ */ proto $1 host $2 port $3 the-rest $4
进一步解析“休息”尽可能具体。在一个正则表达式中做它是一个有点疯狂。