句子

2013-03-12 83 views
0

這裏分號匹配的正則表達式是一個程序來匹配一個正則表達式句子

string="Mozilla/5.0 (Series40; NOKIA311/03.81; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/2.2.0.0.31"; 
regex=/(nokia).*([a-zA-Z0-9]+)/i 
regex.exec(string) 

我的問題是它的不匹配諾基亞和311

誰能help.please

+2

你可以讓它更精緻.... ?? – 2013-03-12 10:44:34

+0

我想從上面的給定字符串中提取模型編號...但給出的正則表達式不提取它..如果分號被刪除,它工作正常.. – Dhatri 2013-03-12 10:45:59

回答

0

使用正則表達式/NOKIA([\d\w]*)/i

這將匹配模式NOKIA和任何數字或沒有空格的詞

+3

'[\ d \ w]'與'\ w'相同。 – 2013-03-12 10:47:38

2

問題是.*,它儘可能地匹配。它實際上最終匹配了整個字符串的其餘部分,並且僅從最後離開1以滿足[a-zA-Z0-9]+。你需要更具體的正則表達式,或者:

/nokia(\d+)/i 
/nokia(.*?)\//i 

.*?使得.*捨不得,所以它只會匹配到第一個斜槓。

+0

其實我第一次嘗試沒有。*但仍然沒有工作.. – Dhatri 2013-03-12 10:54:42