中文/日文字母的正则表达式

Gje*_*t G 2 php regex

Okai 所以regular expression我的网站上允许的名字已经有了这个。但是,我还希望添加名称使用的其他可能的字母。有没有人有好的regex或知道我怎样才能使这更完整?我已经搜索了很长时间,但找不到适合我需求的任何东西。

这是我regex用于检查名称的电流:

$regex = "/^([a-zA-Zàáâäãå????èéêë??ìíîï??òóôöõøùúûü??ÿý??ñç?šžÀÁÂÄÃÅ?????ÈÉÊËÌÍÎÏ???ÒÓÔÖÕØÙÚÛÜ??ŸÝ??ÑßÇŒÆ?ŠŽ?ð ,.'-])+$/";
if(preg_match($regex, $fullname)){
    // do something
}
Run Code Online (Sandbox Code Playgroud)

And*_*rew 6

正如 Lucas Trzesniewski 所提到的,\p{L}将包括[a-zA-Z],所以我已从模式中删除。

因此,结合您在示例中包含的字符列表;图案看起来像这样,/^[\p{L}\s,.'-]+$/u

^[]+$从头到尾匹配字符串,因此+也意味着需要匹配一个或多个

\p{L} 匹配 unicode 字符

\s,.'- 匹配空格、逗号、句点、单引号和破折号

uPCRE_UTF8改性剂,在PCRE的附加功能是用Perl不相容此改性剂匝。

if(preg_match("/^[\p{L}\s,.'-]+$/u", "?????????how are you???,.'-") === 1) {
    echo "match";
}
else {
    echo "no match";
}

// match

if(preg_match("/^[\p{L}\s,.'-]+$/u", "?????????how are you??_?-,.'") === 1) {
    echo "match";
}
else {
    echo "no match";
}

// no match as there are underscore in ??_?
Run Code Online (Sandbox Code Playgroud)