如何在编码UTF-8时检查字符串是否包含至少一个大写字符?我用preg_match
preg_match('/[A-Z]/', $var)
但此代码不适用于所有字符,例如Ó
,Ł
。
我该如何解决?
答案 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)