請教正則匹配,有個小疑惑

來源:互聯網
上載者:User
 

求解,謝謝。


回複討論(解決方案)

//老,唐老鴨等有老字的都不能通過
規則這樣就可以了:$pre='/老/';
preg_match返回匹配到的次數,0或1,它只執行一次匹配
'/[\'\"\ \ ]/'
這個規則是尋找,單引號,雙引號,半間空格,全形空格,這四個的集合,只要有任意一個,都不通過,除了單引號要加\轉義外,其它都可以不加

指定一下編碼

$pre='/[\'\"\ \ ]/u';

$str='唐老鴨'; $pre='/[\'\"\ \ ]/';if(preg_match($pre, $str)){    echo $str.'不通過';}else{    echo $str.'通過';}
唐老鴨通過
$str='唐老 鴨'; $pre='/[\'\"\ \ ]/';if(preg_match($pre, $str)){    echo $str.'不通過';}else{    echo $str.'通過';}
唐老 鴨不通過

不知道你要做什麼

$str='唐老鴨'; $pre='/[\'\"\ \ ]/';if(preg_match($pre, $str)){    echo $str.'不通過';}else{    echo $str.'通過';}
唐老鴨通過
$str='唐老 鴨'; $pre='/[\'\"\ \ ]/';if(preg_match($pre, $str)){    echo $str.'不通過';}else{    echo $str.'通過';}
唐老 鴨不通過

不知道你要做什麼



不好意思,我的問題沒有表達清楚。
就是檢測$str字串是否包含$pre中的單引號空格等,有就表示不通過,沒有就表示通過。
例如:$str='你好' 是可以通過的
$str='你 好' 兩字中間有空格是不能通過的
但我發現$str='唐老鴨'或$str='老'都不能通過,兩個都沒有包含半形空格全形空格單引號雙引號,很奇怪為什麼?
謝謝。

//老,唐老鴨等有老字的都不能通過
規則這樣就可以了:$pre='/老/';
preg_match返回匹配到的次數,0或1,它只執行一次匹配
'/[\'\"\ \ ]/'
這個規則是尋找,單引號,雙引號,半間空格,全形空格,這四個的集合,只要有任意一個,都不通過,除了單引號要加\轉義外,其它都可以不加


不好意思,我的問題沒有表達清楚。
就是檢測$str字串是否包含$pre中的單引號空格等,有就表示不通過,沒有就表示通過。
例如:$str='你好' 是可以通過的
$str='你 好' 兩字中間有空格是不能通過的
但我發現$str='唐老鴨'或$str='老'都不能通過,兩個都沒有包含半形空格全形空格單引號雙引號,很奇怪為什麼?
謝謝。

沒有呀,我那兩個測試結果有什麼不對嗎?

沒有呀,我那兩個測試結果有什麼不對嗎?


我這裡第一個沒通過,不知道為什麼


沒有呀,我那兩個測試結果有什麼不對嗎?


我這裡第一個沒通過,不知道為什麼


把$pre中的全形的大空格去掉就可以

#2 應經說了,utf-8 編碼就加個 u 屬性


沒有呀,我那兩個測試結果有什麼不對嗎?


我這裡第一個沒通過,不知道為什麼

#2 應經說了,utf-8 編碼就加個 u 屬性



沒有呀,我那兩個測試結果有什麼不對嗎?


我這裡第一個沒通過,不知道為什麼


好的謝謝

指定一下編碼

$pre='/[\'\"\ \ ]/u';


謝謝

如果是我解決這個,不想用正則~提供一種思路討論下
代碼粗糙沒測試,有錯誤請原諒

$str = '唐 老' 鴨';$search = array(' ', ','); //需要檢測的字元$replace = ' '; //禁用字元全換成空格$str = str_replace($search, $replace, $str);if(strpos($str, ' ') !== false){ // 判斷有沒有空格    echo '不通過';}

離開編輯器果然原形畢露

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.