如果字符串以大写字母开头,如果第一个字母可能不在AZ范围内,而且来自其他语言,如果第一个字符不是数字,那么如何检查字符串是否以大写字母开头?
例子:
"This is string" - match
"this is string" - not match
"5 not good" - not match
"??????? starts capital" - match
"?????????? no capital" - not match
Run Code Online (Sandbox Code Playgroud)
在PHP中:
if (preg_math('/??/i', $str) ) {
echo 'yeeee haaa';
}
Run Code Online (Sandbox Code Playgroud)
nha*_*tdh 16
使用这个正则表达式:
preg_match('#^\p{Lu}#u', $str)
Run Code Online (Sandbox Code Playgroud)
\p{Lu} 将匹配任何具有大写字母的Unicode字符属性的字符.
演示上regex101(请忽略标志m和g,他们是为示范的目的只)
当您处理Unicode字符串时(或者更具体地说,在preg_函数的情况下,Unicode字符串必须采用UTF-8编码),您必须始终使用uflag来使引擎处理输入字符串和具有字符语义的模式.否则,默认情况下,preg_函数将模式和输入字符串视为字节数组,并为ASCII范围外的字符生成意外结果.