# 筆記_PHP正規表示式比對字串 preg_match(1) ---- ###### tags: `PHP函式` `PHP` `regex` 文章成就皆不來自於我 ---- [php preg_match 正規表示式比對使用介紹](https://www.webtech.tw/info.php?tid=46) [PHP正規表達式比對](https://medium.com/verybuy-dev/php%E6%AD%A3%E8%A6%8F%E8%A1%A8%E9%81%94%E5%BC%8F%E6%AF%94%E5%B0%8D-89b03ebc10eb) 上面有`/\b/`例子 --- 主要想記錄的是 使用`/\b/`英文邊界 與`/string/i` 不分大小寫 簡單嘗試 ## 找出"完全符合"的字母`/\b/` ```php= echo preg_match('/\b\wB\b/i', 'sB'); // return 1 echo preg_match('/\b\wB\b/i', 'svtbgtgnB'); // return 0 ``` 這個意思是`\w`為比對數字字母+英文字母+底線_ 同等[A-Za-z0-9_] 但因為前後都有設定邊界`\b` 會變成只能一個[A-Za-z0-9_]+B 前面邊界拿掉就又變回1 ```php= echo preg_match('/\wB\b/i', 'svtbgtgnB'); // return 1 ``` 網址上面的例子 ```php if (preg_match("/\bdef\b/i", "abcdefg")) { echo "條件符合"; } else { echo "條件不符合"; } // return 條件不符合 ``` **這個範例會顯示條件不符合。 其中 \b 所代表的意思是完全符合才算數,也就是說字串 abcdefg 中必須要有獨立的 def 才算符合。 以目前狀況來說 abcdefg 全部黏在一起,所以並不符合,我們可以做個修改** ```php if (preg_match("/\bdef\b/i", "abc def g")) { echo "條件符合"; } else { echo "條件不符合"; } // return 條件符合 ``` ## IP 如果要判斷使用端IP就可以使用以下方式 IP都是數字所以不分大小寫 邊界設定為 ***完全比對*** ```php= if(preg_match("/192.168.1./", $IP) || preg_match("/\b118.163.120.169\b/", $IP)) { // do something } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up