需要有关硬正则表达式的帮助

Tom*_*asz 2 php regex capitalization

我需要一个正则表达式来检查一个字符串是否只包含字母(az),并且第一个字母是大写的,你不能在一个单词大写中有2个字母,如:THomas或THOMAS但托马斯安德森(托马斯安德森)也是有效的

看:

The Magician Of The Elfs 是有效但不是 ThE MaGiCiAN oF ThE ELFS

if (!preg_match("??", $name)) {
   echo "Invalid name!";
}
Run Code Online (Sandbox Code Playgroud)

希望你能理解!

托马斯

无效:

MaGIciaN Of The ELFz
THomas anderson

有效:

Magician of the elfs
Magician Of the Elfs
Magician of The elfs
Thomas Anderson
Thomas anderson

基本上我不希望它有可能在一个单词中有超过1个大写字母,而不是句子.

jen*_*ram 5

'/^[A-Z][a-z]+( [A-Z][a-z]+)*$/'
Run Code Online (Sandbox Code Playgroud)

但是未经测试.

编辑哦,也许我误解了你的问题.以上假设最小字长为2."John A"或"A Horse"有效吗?在那种情况下:'/^[A-Z][a-z]*( [A-Z][a-z]*)*$/'.


根据更新要求:

'/^[A-Z][a-z]*( [A-Za-z][a-z]*)*$/'
Run Code Online (Sandbox Code Playgroud)

验证一个大写字母后跟任意数量的小写字母.在此之后,任意数量的序列:空格(可能是大写字母),任意数量的小写字母(每个空格至少一个字母).