2016-07-12 121 views
0

我工作的一個正則表達式應該符合特定TLD,但我大概經歷了太多的步驟去(我想保持儘可能少,爲了不超載引擎): 的想法是使用TLD 「.NET」 相匹配的URL(而不是整個域):正則表達式匹配特定TLD

  1. hxxp://us.netprinting.com/
  2. hxxps://我們。 netprinting.com/
  3. hxxps://us.net
  4. mycar.netto.com/login
  5. www.wonderfulday.net:80/login
  6. myhouse.net:443

我工作的這一個,到目前爲止,我僅符合#3,#5,但不是#6 :

/(?<=\/\/|\.(?!-))[a-z0-9-]+(?<!-)\.net\b(?!\.)/g 

我是不是太狂野,或者你看到更輕鬆的方式來實現這一目標?

非常感謝。

+1

你應該告訴我們哪些應該(不)匹配 –

+0

網址或有「.NET」爲頂級域名的FQDN。 – MimmoFu

+0

這味道是什麼呢? –

回答

1

您可以使用:

\.net(?:[:\/]|$) 

它將匹配.net接着是:/或行的末尾。見demo

+0

你完全正確的''.' @Aaron –

+0

更好的是,使用前瞻:https://regex101.com/r/lD6jN9/3 – Yaron

+0

@亞倫我看不到任何改善與前瞻... –