如何确定非英语字符串是否为大写?

Bor*_*tin 6 php regex pcre

我正在使用以下代码检查一个字符串,其中所有字符都是大写字母:

        if (preg_match('/^[\p{Lu}]+$/', $word)) {
Run Code Online (Sandbox Code Playgroud)

这适用于英语,但无法检测带有重音符号,俄语字母等的字母.\ p {Lu}是否适用于所有语言?有更好的方法吗?

sdo*_*lgy 6

一个特殊选项是/ u,它打开Unicode匹配模式,而不是默认的8位匹配模式.您应该为使用\ x {FFFF},\ X或\ p {L}的正则表达式指定/ u以匹配Unicode字符,字形,属性或脚本.PHP会将'/ regex/u'解释为UTF-8字符串而不是ASCII字符串.

http://www.regular-expressions.info/php.html -