2015-12-02 138 views
-1

我想解析出一個特定的數字範圍,似乎無法做到正確。我正在尋找從用戶代理字符串中提取特定的瀏覽器版本。例如,我想分析Chrome 1-42和Firefox 1-40,但我無法弄清楚語法。正則表達式數字範圍prasing

什麼我到目前爲止是這樣的,哪一種的作品,但它抓住它看到的第一個號碼,不尊重的2位數範圍:

Gecko..Chrome /([1-9] 。| [1-4] [1-2])

樣品:

的Mozilla/5.0(Windows NT的6.1; WOW64)爲AppleWebKit/537.36(KHTML,例如Gecko)鉻/ 34.0.1847.137 Safari瀏覽器/ 537.36 Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/38.0.1847.137 Safari/537.36 Firefox 29:Mozilla/5.0(Android; Mobile; rv:29.0)Gecko/29 .0 Firefox/23.0 Mozilla/5.0(Macintosh;英特爾Mac OS X 10.9; rv:29.0)Gecko/20100101 Firefox/29.0

任何想法? TIA。

+0

非常不清楚:你想在這裏匹配並捕獲'34'和'38'嗎?這個數字必須是從1到42?然後,嘗試['Gecko \)\ s + Chrome /([23] [0-9] | 4 [0-2] | [1-9])'](https://regex101.com/r/wQ1nI5/1) –

回答

0

因爲正則表達式是文本匹配僅數被視爲文本,像做1到41,你就必須是這樣的:

\b[1-9]\b|\b[1-3][0-9]\b|4[0-2]\b 

這是匹配1至9或10至39或40至42.我已經添加了邊界\b,以便除了這些數字之外什麼都沒有匹配。