首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自任何语言的信函的regex在php中不起作用。

来自任何语言的信函的regex在php中不起作用。
EN

Stack Overflow用户
提问于 2019-04-25 03:31:44
回答 1查看 64关注 0票数 1

我使用以下正则表达式来允许来自任何语言、数字、下划线和空格的字母。

代码语言:javascript
复制
^[\p{L}0-9 _]\*[\p{L}0-9][\p{L}0-9 _]\*$

它在在线regex测试工具中非常好,但在我的PHP代码中却不行。例如,它将不与任何俄语单词"Привет“相匹配。

知道为什么吗?

PHP版本:PHP7.1.16

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-25 03:39:54

你的判决有几个问题。首先,它将只匹配3个字符,而不添加一个*+后的字符集。其次,要在PHP中匹配unicode,需要在regex上使用u 修饰符。试一试:

代码语言:javascript
复制
$str = 'Привет';
$regex = '/^[\p{L}0-9 _][\p{L}0-9]+[\p{L}0-9 _]$/u';
echo preg_match($regex, $str);

输出:

代码语言:javascript
复制
1

基于3v4l.org的演示

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

https://stackoverflow.com/questions/55841422

复制
相关文章

相似问题

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