簡體   English   中英

我想要一個正則表達式,僅將域名中的一個匹配

[英]I want a regular expression that only matches domain names with one period in them

我希望它能捕獲諸如somedomain.com/folder/path ,而不是諸如domain.sub.other.com類的domain.sub.other.com 到目前為止,我擁有的正則表達式幾乎完整,只是沒有篩選出多域網址:

^(.*)://(?!(.{2,3})\.(.*)(.{2,3})(.*)

有什么辦法可以篩選多個時期?

而不是.{2,3} ,您需要這樣的東西: [^.]{2,3} -從中排除句點(無需轉義,因為在正則表達式中在此上下文中沒有特殊含義)特別的比賽。 總體而言,您會遇到以下情況:

://[^.]+\.[^.]{2,3}(/.*)?

除非您這樣做顯然會漏掉* .info之類的東西。

找到了可以在各種測試方案下工作的解決方案:

^(.*)://([^.]+)\.([^(\?|/|\r|\n|\.)]+)((/|\?|$)+)(.*)$

在這里,第二到最后一組與潛在的正斜杠,問號或字符串結尾匹配,與之前的組一起工作,不允許包含“。”的匹配。

因此,最終效果是,它僅匹配具有兩部分域名的URL,例如“ domain.com”,並且對字符串長度沒有任何限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM