字符串

时间:2017-11-24 16:57:41

标签: php regex encoding utf-8 preg-match

如何在编码UTF-8时检查字符串是否包含至少一个大写字符?我用preg_match

检查了这个
preg_match('/[A-Z]/', $var)

但此代码不适用于所有字符,例如ÓŁ

我该如何解决?

2 个答案:

答案 0 :(得分:2)

A-Z正在查看ascii范围。您正在显示的字符超出该范围。使用\p{Lu}并使用unicode修饰符u

preg_match('/\p{Lu}/u', $var)

演示:https://regex101.com/r/WZaOCD/1/

有关更多unicode选项,请参阅http://php.net/manual/en/regexp.reference.unicode.php

答案 1 :(得分:1)

尝试添加\p{Lu}\p{Lt}模式,unicode标志:

preg_match('/[A-Z\p{Lu}\p{Lt}]/u', $var)