[英]Php regular expression, url validation, following dots in domain name is valid?
我在驗證組2((子)域和擴展名)時遇到問題。
我的正則表達式:/ /^(http:[\\/]{2})([\\w\\d\\-\\_\\.]+)(\\/(?:[\\/\\w\\W]+)?)?$/
:[ /^(http:[\\/]{2})([\\w\\d\\-\\_\\.]+)(\\/(?:[\\/\\w\\W]+)?)?$/
:[ /^(http:[\\/]{2})([\\w\\d\\-\\_\\.]+)(\\/(?:[\\/\\w\\W]+)?)?$/
問題發布於: ([\\w\\d\\-\\_\\.]+)
問題: http://www.....google....com/東西有效,我嘗試做[\\w\\d\\-\\_][(?<!\\.)\\.(?!\\.)]+
但是a行。
我如何才能做到,如果有的話.
后面還是一個.
在前面.
正則表達式將返回false。
您可以使用否定的前瞻:
~^https?:/{2}(?!.*?\.\.)([\w\d.-]+)(/.*)?$~
順便說一句,在PHP中,您還可以使用parse_url
函數來解析URL。
(?!.*?\\.\\.)
為負前瞻,將不允許2個點。
您可以使用此版本的正則表達式 :
^(http:[\/]{2})((?![^\/]*?\.{2}[^\/]*?)[\w\d\-\_\.]+)(\/(?:[\/\w]+)?)?$
問題是\\W
(與同一字符類中的\\w
一起)匹配所有內容,甚至換行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.