我制作了一个正则表达式来匹配一些网址:
它必须匹配:协议 (http,https)、用户名 (username@ --if any)、passord(username:password@ --if any)、主机名(asdf.asdf(etc) 或 123.154.213.255 ) 端口(:80 - 如果有的话)和路径(以反斜杠开头,然后跟随 / 或 . 或任何字母或数字之间的任意组合)。
到目前为止我的正则表达式:
\b(https?)://([a-z]*?@|[a-z]*?:[a-z]*?@)?((([01][0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]|[1-9][0-9])\.([01][0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]|[1-9][0-9])\.([01][0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]|[1-9][0-9])\.([01][0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]|[1-9][0-9]))|([a-z]*\.?)*[a-z])(:[0-9]*)?
有点难读。我的问题是找到路径....直到现在我已经尝试(/?)找到第一个(可能的) / 然后我尝试(/?/|\.|[a-z]|[0-9]*)
匹配任何 / 或 。或 [a-z0-9] 可能有很多次,但它不起作用。