2015-07-22 46 views
0

我在配置單元中的正則表達式函數中遇到了一些問題。 我希望能在列表中找到例子頂級域名:正則表達式在索引0附近懸擺元字符

www.whatever.com 
www.iam.com.uk 
mobile.who.com.us 
在這種情況下

,我應該得到的「whatever, iam, who」,所以我選擇看反轉,並寫入正則表達式的結果:

*\.([a-z]+)\.([a-z]+)+(\.[a-z]+)?$ 

這意味着我只想查看url中最後2或3個項目。 但它返回了一個懸而未決的錯誤。 任何幫助表示讚賞!

+1

你的意思''^代替'*'在正則表達式的第一個字符? '^'表示字符串開始。或者,也許你的意思是'。*'匹配第一個'。'之前的任意數量的字符?你也有一個未封閉的組。 –

+0

我試着把*放在開頭,但是返回像'm.whatever.com'這樣的網址,這意味着它只替換一個字符而不是前面的任何數字 –

+0

'^ \ w + \。(\ w +)(?: \。\ w +)+ $'將爲您提供第1組的預期結果。但是,從主機名中提取頂級域名不是一般的正則表達式。 –

回答

0

您似乎總想獲得URL的第二部分。那麼爲什麼不直接這樣做呢?

[a-z]+?\.([a-z]+)?\. 
  1. 此檢查1個或多個字符懶惰地。
  2. 然後一個.點。
  3. 然後,它會連續捕捉1個或更多字符,直到點。

DEMO

+0

我之所以沒有這麼做,原因可能是「mobile.sports.whatever.com」發生時的可能性 –

+0

@QiNie:如果您的目標確實是提取域名(而不是簡單地修復您的原始錯誤正則表達式),請參閱[這裏](http://stackoverflow.com/questions/863297/regular-expression-to-retrieve-domain-tld)和[這裏](http://stackoverflow.com/questions/569137/ how-to-get-domain-name-from-url)的想法。 –

+0

@ Equality7-2521,謝謝你的信息! –