これは正規表現に一致するプログラムです
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)
私の問題は、NOKIA と 311 に一致しないことです
誰でも助けてくれますか?
これは正規表現に一致するプログラムです
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)
私の問題は、NOKIA と 311 に一致しないことです
誰でも助けてくれますか?
問題は、.*
可能な限り一致させようとする です。実際には、残りの文字列全体と一致することになり、1
を満たすために最後からのみを残し[a-zA-Z0-9]+
ます。おそらく、より具体的な正規表現が必要です。
/nokia(\d+)/i
/nokia(.*?)\//i
は嫌がるため、最初のスラッシュまでしか一致しません.*?
。.*
正規表現を使用する/NOKIA([\d\w]*)/i
これは、パターン NOKIA とスペースを含まない任意の数字または単語に一致します