回答
背景
有一对夫妇的事情,这里要注意。首先,量词(在这种情况下,{3,16}
)仅适用于最后一个正则表达式标记。因此,您当前正则表达式的真正含义是“匹配任何具有单个字母字符的字符串(不区分大小写),后跟3到16个空格字符(例如空格,制表符等)。”
二,名称可以有超过2个部分(中间名,某些民族名称,如“德拉克鲁兹”)或包括特殊字符,如重音元音。你应该考虑这是你在程序中需要考虑的事情。这些事情很重要,应该考虑任何真实应用程序。
假设和回答
现在,就让我们假设你只想要的名字一定的格式,由一个名字,姓氏,和空间。假设您只需要简单的ASCII字符(即没有特殊字符或重音字符)。此外,名字和姓氏都应以大写字母开头,后跟小写字母。除此之外,名称的各个部分的长度没有限制。后^
字符是所谓的positive lookahead
^(?=.{3,16}$)[A-Z][a-z]+ [A-Z][a-z]+$
注意
第一令牌:在这种情况下,下面的正则表达式会做的伎俩。基本上,积极的展望将匹配开头(?=
和结束)
之间的正则表达式,而不实际移动与该字符串匹配的游标的位置。
通知我删除了\s
的道理,因为你通常想只(空间)。如果需要制表符和其他空格,那么可以使用
\s
标记替换空间。
我还添加了一个限制,名称必须以大写字母开头,后跟只有小写字母。
原油翻译
以帮助理解,这里是一个什么样的正则表达式是真正做一个简单的英文翻译。斜体部分只是从正则表达式的英文翻译的第一部分复制而来。
“相匹配的有3-16个字符,并以大写字母字符后面跟着一个或多个(
+
)开始字母字符后跟一个空格,然后大写字母字符后面跟着一个或多个任意字符串(+
)字母字符并以任何小写字母结尾。“
工具
有一对夫妇的工具,我想,当我试图解决一个具有挑战性的正则表达式来使用。他们被列在下面没有特定的顺序:
- https://regex101.com/ - 允许您实时测试正则表达式。它还有一个漂亮的小图书馆来帮助你。
- http://www.regular-expressions.info/ - 基本上是正则表达式的知识库。
编辑/更新
您在您的意见,您使用的是JavaScript中您正则表达式提及。 JavaScript使用围绕正则表达式的正斜杠来确定什么是正则表达式。对于这个简单的例子,使用正则表达式来匹配一个字符串有两个选项。
首先,使用String
的比赛方法如下
"John Smith".match(/^(?=.{3,16}$)[A-Z][a-z]+ [A-Z][a-z]+$/);
其次,创建一个正则表达式,并使用其test()
方法。例如,
/^(?=.{3,16}$)[A-Z][a-z]+ [A-Z][a-z]+$/.test("John Smith");
后者可能是你想要的东西,因为它简单地返回取决于正则表达式是否实际匹配字符串或不true
或false
。
谢谢你所有的解释,现在我清楚了,它在我的程序中工作得很好。谢谢 –
- 1. 正则表达式匹配无字符字符一个空格
- 2. JavaScript正则表达式空白字符
- 3. 正则表达式为空字符串
- 4. 正则表达式字符?,$,|
- 5. 正则表达式字符
- 6. 正则表达式在Sed中的空格字符
- 7. 如何使用PHP正则表达式压缩空格字符?
- 8. Java正则表达式 - 如何获取空格和字符?
- 9. 使用空格替换非alpha字符的正则表达式
- 10. 正则表达式:在连字符前后找到空格
- 11. 限量的正则表达式字符串用空格
- 12. 正则表达式来寻找最后的空格字符
- 13. PHP的正则表达式,空格或无字符
- 14. 正则表达式匹配字符串可能以空格
- 15. 正则表达式匹配一个空格的单个字符
- 16. 用正则表达式替换空格字符php
- 17. 用于检查重复空格字符的正则表达式
- 18. 不包含字符串的正则表达式空格
- 19. 正则表达式中的空格字符不被识别
- 20. XRegExp正则表达式允许字符间单个空格
- 21. 正则表达式允许在Java中使用空格字符
- 22. 正则表达式匹配空格或字符串结尾
- 23. Javascript正则表达式“单个空格字符”
- 24. 正则表达式匹配至少一个字符或空格
- 25. 正则表达式 - 匹配HTML字符串中的空格?
- 26. 正则表达式删除字符空格以后的各线
- 27. 正则表达式 - 在替换字符之间添加空格
- 28. 正则表达式字符串中的空格限制
- 29. 正则表达式alphanum在字符串末尾没有空格
- 30. 正则表达式替换字符串中的空格
此时表达式匹配单个字符'a'到'z'(小写或大写),后跟3到16个空格。量词只适用于'\ s'。 –
当试图调试正则表达式时 - 不要过去像https://www.debuggex.com/r/GFfROJSrQEMa2mta这样的网站,它可以帮助您快速找到问题。 – Shadow
@shadow这是一个漂亮的小工具。我也喜欢regex101.com。它是完全免费的。 – c1moore