我正在努力形成一个匹配的正则表达式:
验收测试(正则表达式应与粗体文本匹配):
到目前为止,我已经提出了这个问题:
([^\/\/]+)(?:,|$)
它工作正常,但不适用于末尾带有斜杠的网址。如何修改表达式以包括完整路径(http(s)://右侧的所有内容)?谢谢。
答案 0 :(得分:1)
如果以http://或https://开头,则此正则表达式将匹配它们,直到下一个斜杠。如果它不以http://和https://开头,那么它将匹配整个字符串。足够接近?
(?:^https?:\/\/([^\/]+)(?:[\/,]|$)|^(.*)$)
我应该注意,大多数语言都内置了正确解析URL的功能,这些都是首选。
你应该注意我有2套捕捉括号,所以根据你的语言可能很重要。
答案 1 :(得分:0)
也许是^(http[s]?:\/\/)?(.*)$
。在这里播放:https://regex101.com/r/iZ2vL4/1
答案 2 :(得分:0)
这将具有匹配组,您想要的域将在第4个匹配组中。
/^((http[s]?|ftp):\/\/)?\/?([^\/\.]+\.)*?([^\/\.]+\.[^:\/\s\.]{2,3}(\.[^:\/\s\.]{2,3})?(:\d+)?)($|\/)([^#?\s]+)?(.*?)?(#[\w\-]+)?$/mg
Regex101.com workbench to check out your URLs只需将它们粘贴到“ TEST STRING”文本框中即可对其进行测试。
不记得我从哪里得到的……所以我不知道该归功于谁。但这很漂亮!