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 不匹配

任何人都可以帮助。请

4

2 回答 2

2

问题是.*,它试图尽可能地匹配。它实际上最终匹配整个字符串的其余部分,并且只1从最后离开以满足[a-zA-Z0-9]+. 您可能需要一个更具体的正则表达式:

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

.*?使得.*不情愿,所以它只会匹配第一个斜线。

于 2013-03-12T10:48:33.467 回答
0

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

这将匹配模式 NOKIA 和任何没有空格的数字或单词

于 2013-03-12T10:46:42.220 回答