php - 在硬正则表达式方面需要帮助

标签 php regex capitalization

我需要一个正则表达式来检查一个字符串是否只包含字母 (a-z) 并且第一个字母是大写的,你不能在一个单词中有 2 个字母大写像:THomas 或 THomAS 但 Thomas Anderson(Thomas anderson 也是)有效

看:

The Magician Of The Elfs 是有效的,但不是 The MaGiCiAN of The ELFS

if (!preg_match("??", $name)) {
   echo "Invalid name!";
}

希望你明白!

托马斯

无效:

ELFz 的魔术师
托马斯·安德森

有效:

Sprite 魔法师
Sprite 魔法师
Sprite 魔法师
托马斯·安德森
托马斯·安德森

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

最佳答案

'/^[A-Z][a-z]+( [A-Z][a-z]+)*$/'

虽然未经测试。

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


根据更新的要求:

'/^[A-Z][a-z]*( [A-Za-z][a-z]*)*$/'

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

关于php - 在硬正则表达式方面需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080972/

相关文章:

regex - 如何匹配 Markdown 中的纯文本 URL?

php - 如何使用 php 链接电子邮件地址

javascript - 如何使用ajax正确地将数据发布到div中?

php - 服务帐户的 Google Analytics API oauth 异常 "invalid_grant"。两台服务器上的相同代码。只有一个有效

regex - 使用Powershell在文件中将路径从斜杠更改为反斜杠

macos - 在 Mac 上输入 Outlook 2011 时如何禁用自动大写?

PHP 将除某些单词外的所有字母(包括斜线后)大写

python - Google App Engine 使用 UserProperty 链接数据

php - session ID 在 CodeIgniter 中发生变化

php:正则表达式删除字符串中的括号