2011-06-08 184 views
3

我想從中抽取gmail.com,我只想要那些不以@開頭的字符串匹配。前綴排除的正則表達式

例如:[email protected](不匹配這個); www.gmail.com(與此匹配)

我嘗試了以下操作:([email protected])gmail\.com但這沒有奏效。這與以上示例中突出顯示的兩種情況相匹配。有什麼建議麼?

+1

你的意思是前綴? – Qtax 2011-06-08 16:44:16

+0

嗯..是的,這就是我的意思:)前綴 – Tom 2011-06-08 17:29:50

回答

3
[^@\s]*(?<[email protected])\bgmail\.com\b 

假設您想在更長的文本體中查找字符串,而不驗證整個字符串。

說明:

[^@\s]*  # match any number of [email protected], non-space characters 
(?<[email protected])  # assert that the previous character isn't an @ 
\b   # match a word boundary (so we don't match hogmail.com) 
gmail\.com # match gmail.com 
\b   # match a word boundary 

在一個乍看之下,(?<[email protected])向後斷言似乎是不必要的,但它不是 - 否則的[email protected]gmail.com部分將匹配。

+0

說明!是。 – thekingoftruth 2014-01-22 11:24:57

+0

我的投票也解釋它。 – MrMarlow 2016-04-28 10:00:06