首頁 > 後端開發 > php教程 > 请教正则匹配,有个小疑惑

请教正则匹配,有个小疑惑

WBOY
發布: 2016-06-23 13:54:25
原創
719 人瀏覽過

<?php$str='唐老鸭'; //老,唐老鸭等有老字的都不能通过$pre='/[\'\"\ \ ]/'; //把全角空格去掉就可以if(preg_match($pre, $str)){	echo $str.'不通过';}else{	echo $str.'通过';}?>
登入後複製

求解,谢谢。


回复讨论(解决方案)

//老,唐老鸭等有老字的都不能通过
规则这样就可以了:$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 '不通过';}
登入後複製

 离开编辑器果然原形毕露

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板