首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx与ctype_*

RegEx与ctype_*
EN

Stack Overflow用户
提问于 2009-12-21 02:10:42
回答 2查看 842关注 0票数 3

几个月前,you为我的IsAlpha & co问题提供了一个完美的解决方案。但是,在升级PHP (到版本5.2.9)之后,我又一次遇到了问题,尽管ctype_*函数现在似乎可以完成它们的工作:

代码语言:javascript
复制
ctype_alpha( $value ) /* VS */ preg_match("/^[\p{L} _.\-]+$/u",    $value)

ctype_alnum( $value ) /* VS */ preg_match("/^[\p{L}0-9 _.\-]+$/u", $value)

所谓问题,我的意思是'GB‘或'blablue’被ctype_alpha()正确地识别为alpha,但在preg_match("/^[\p{L} _.\-]+$/u", $value)中却失败了。

如果你有任何想法,请告诉我,我在谷歌上认真搜索了一下后,我把它们都找出来了。

非常,非常感谢!

P.S.在两个环境中,LANG/LC_CTYPE/etc都设置为en_US.UTF-8

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-23 01:37:47

确保PCRE已使用UTF-8支持和Unicode属性支持进行编译。

代码语言:javascript
复制
if ( ! @preg_match('/^.$/u', 'ñ'))
    echo 'PCRE has not been compiled with UTF-8 support.';

if ( ! @preg_match('/^\pL$/u', 'ñ'))
    echo 'PCRE has not been compiled with Unicode property support.';

来自http://github.com/kohana/kohana/blob/master/install.php的检查。

票数 4
EN

Stack Overflow用户

发布于 2009-12-21 02:42:29

我在托管服务器上使用unicode元字符的正则表达式时遇到了一些问题。问题简而言之:它不起作用。我没有调查真正的原因,因为它是一个临时服务器,但您可以查看unicode支持,因为您的问题似乎类似。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1936504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档