php正则匹配汉字结尾的字符串

WBOY
Libérer: 2016-06-23 14:12:50
original
1622 Les gens l'ont consulté

本帖最后由 zhuzhaodan 于 2013-06-09 00:04:00 编辑

UTF-8格式
$str = "289dfh第一个匹配     jdfh388第二个匹配  jfsj83第三个匹配 sjfsui"
要匹配出 1)289dfh第一个匹配
         2)jdfh388第二个匹配
         3)jfsj83第三个匹配

回复讨论(解决方案)

本帖最后由 xuzuning 于 2013-06-09 07:05:36 编辑

$str = "289dfh第一个匹配     jdfh388第二个匹配  jfsj83第三个匹配 sjfsui";preg_match_all('/\w+[\x{4e00}-\x{9fa5}]/iu', $str, $r);print_r($r[0]);
Copier après la connexion
Array
(
[0] => 289dfh第一个匹配
[1] => jdfh388第二个匹配
[2] => jfsj83第三个匹配
)

我想用环视做,左边不以汉字开头做界,右边以汉字结尾做界,这样怎么写呢?

<?php$str = "289dfh第一个匹配     jdfh388第二个匹配  jfsj83第三个匹配 sjfsui   汉字开头的不要    haha这个要";preg_match_all('/\s*(?![\x{4e00}-\x{9fa5}])\w+[\x{4e00}-\x{9fa5}]+/iu', $str, $r);print_r($r[0]);
Copier après la connexion
Copier après la connexion


你指的是这个不?
否定顺序环就可以啦 ~~~

我想用环视做,左边不以汉字开头做界,右边以汉字结尾做界,这样怎么写呢?

你这个是黑名单做法,范围太大了,应该改用白名单,规定开头是什么才对

<?php$str = "289dfh第一个匹配     jdfh388第二个匹配  jfsj83第三个匹配 sjfsui   汉字开头的不要    haha这个要";preg_match_all('/\s*(?![\x{4e00}-\x{9fa5}])\w+[\x{4e00}-\x{9fa5}]+/iu', $str, $r);print_r($r[0]);
Copier après la connexion
Copier après la connexion


你指的是这个不?
否定顺序环就可以啦 ~~~

为什么把结尾的/iu去掉,会报错
Compilation failed: character value in \x{...} sequence is too large at offset 8

/iu

i表示忽略大小写
u表示utf8

/iu

i表示忽略大小写
u表示utf8

把U去掉,显示错误,为什么不指定U,就错误啊

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal