我在使用RegEx時遇到問題。主要是我想創建一個過濾器,只發現谷歌分析這25個IP地址:在Google Analytics中匹配25個IP地址的正則表達式
- 216.54.215.0
- 216.54.215.1
- 216.54.215.2
- ...
- 216.54。 215.24
我第一次想到自己可以使用:
216\.54\.215\.([0-9]|[1][0-9]|[2][0-4])
但你可以看到,它不是捕捉10-24第二位。
然後,我打開了「顯示空白」,並注意到RegEx可能存在換行問題。所以,我試圖利用[0-9]
和$
最後.
後只選擇一個單一的數字:
216\.54\.215\.([0-9]$|[1][0-9]|[2][0-4])
沒有承認任何的0-9,因爲我認爲它會匹配一個單一的數字是奇怪[0- 9]並在那之後結束,即$。我認爲這是錯誤的嗎?
接下來,我打開了顯示空格,我看到每個IP地址都有換行符。我不知道爲什麼我決定嘗試字邊界,但我決定換掉我的$
爲\b
。你知道什麼,它的工作。
216\.54\.215\.([0-9]\b|[1][0-9]|[2][0-4])
爲字邊界的定義是:相配,而不消耗任何字符,之間立即\w
一個字符匹配和字符不是由\w
(以任一次序)匹配。
問題:
- 這是寫的正則表達式的最好方法?
- 爲什麼
$
在我的第二個例子中不起作用? - 爲什麼
\b
有效?