我們先定義一個字符串,如圖,假設要從這段字符串里,匹配找出網站的名字“搜狗”
然后定義一個正則表達式,解析下代碼,正則要放在斜杠符號(/)里面,如果表達式里有用到斜杠(/)符號的,則需要用反斜杠來轉義。
最后面的 “i” 標記是讓正則表達式在匹配的時候不需要區分大小寫。
這里定義一個數組,并調用php的preg_match方法,方法的第一個參數是上面定義的正則表達式,第二個參數是要查找的字符串,第三個參數是定義的數組,當有匹配到數據時,數組第一項是匹配的原字符串,數組第二項就是要查找的數據
最后用dump方法輸出數組的內容,顯示匹配結果。
所有的代碼就是這幾行。
運行這些代碼后,我們看到結果如圖,有匹配到數據,但得到的結果(數組第二項內容)把字符串后面的內容都匹配上了。
為什么會這樣?
是因為我們的正式表達式,默認情況是貪婪匹配,就是匹配盡量多的內容。
如何修正?我們只要加多一個U標記就行了,代碼如圖,加上這個標記就會告訴正則表達式,執行非貪婪匹配。
再運行下代碼,看下結果。
如圖,這次能正確匹配到網站名字了。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!