|
|
1
49
这个正则表达式非常适合我。
它可以在使用preg_match()的php环境中正常工作,但并不适用于任何地方。
相配
|
|
|
2
45
将-添加到第二个字符类中。最简单的方法是在开始时添加它,这样就不可能将其解释为范围修饰符(如中所示)
^[A-Z][-a-zA-Z]+$
^[A-Z][-'a-zA-Z]+$
^[A-Z]'?[-a-zA-Z]+$ 这将允许在第二个位置使用单撇号。
^[A-Z]'?[- a-zA-Z]+$ 一个可能更好的方法可能是: ^[A-Z]'?[- a-zA-Z]( [a-zA-Z])*$ 在结尾处寻找额外的单词。如果您试图在一个额外的文本体中匹配名称,这可能不是一个好主意,但是,同样,原始文本也不会做得那么好。
现在你不再看单一的名字了? 无论如何,正如你所看到的,正则表达式有一个快速增长的习惯。。。 |
|
|
3
13
名称的最佳正则表达式:
必须使用单个名称,不带空格,不带特殊字符:
具有 特殊字符:
强制单名, 可选附加名称 具有 带有特殊字符的空格:
可选附加名称 空间, 没有
特例许多现代智能设备在每个单词的末尾添加空格,因此在我的应用程序中,我在字符串前后允许无限数量的空格,然后在后面的代码中对其进行修剪。因此,我使用以下方法:
如果您希望添加自己的特殊字符,让我们使用下划线 _ 这是您需要更新的组:
PS:如果您有任何问题,请在此处发表评论,我将收到一封电子邮件并回复;) |
|
|
4
6
虽然我同意你的回答,说你基本上不能用regex做这件事,但我要指出,一些反对意见(国际化字符)可以通过使用UTF字符串和
|
|
|
5
4
我真的没有太多东西可以添加到一个处理名称的正则表达式中,因为这里已经有一些很好的建议,但是如果您想了解更多有关正则表达式的信息,请查看:
|
|
|
6
4
|
|
|
7
3
我赞成“放弃”的建议。即使你考虑数字、连字符、撇号等,一些[AZ-Z-Z ]仍然不能赶上国际名字(例如,那些有,或西里尔字母,或汉字……) 但是你为什么还要验证名字?你想抓住什么错误?你不认为人们比你更懂得写自己的名字吗说真的,通过验证姓名,你唯一能做的就是用不寻常的姓名激怒人们。 |
|
8
3
基本上,我同意保罗。。。你总会发现例外,比如 卡普里奥酒店 魔王
消息备注:在PHP中,ereg通常被视为过时(缓慢、不完整)而支持preg(PCRE正则表达式)。
如果你真的需要解决你的问题,并且对以上的答案不满意,就直接问吧,我会试试的。 |
|
|
9
3
这对我很有用:
让-克劳德·范达姆 纳丁·阿罗约·罗德里克斯
贝弗利·德安吉洛 比利·鲍伯·桑顿 蒂托·普恩特 苏珊·德尔里奥 它将包括“范达姆”、“阿罗约·罗德里克斯”、“德安吉洛”、“比利·鲍勃”等,以及“韦恩”等单数名字。
我写这篇文章是为了解析MapReduce应用程序的名称。我只想从name字段中提取单词,将del foo、la bar和billy bobs组合成一个单词,以使键值对生成更准确。 |
|
|
10
1
将接受以大写字母开头,后跟零个或多个字母、空格、连字符、符号或撇号,并以字母结尾的任何内容。 |
|
|
11
1
有关“名称检测”相关内容,请参见此问题。 regex to match a maximum of 4 spaces
如果您仍然将自己限制在没有·和其他类似非严格ascii字符的单词中。 为自己准备一份UTF32字符表的副本,并了解其中有多少个字符 数以百万计的 |
|
|
12
1
要在用户名中添加多个点,请使用此正则表达式:
字符串长度可以单独设置。 |
|
|
13
1
然后对照你的正则表达式检查。 |
|
|
14
1
试试这个。您还可以强制使用^以char开头,使用^以char结尾$ |
|
|
15
1
我也遇到过同样的问题,就像许多其他人发表的文章一样,这不是一个100%的傻瓜式表达,但它对我们有用。
这将检查名字和/或姓氏中是否有任何连字符和/或撇号,以及名字和姓氏之间是否有空格。最后一部分是一个小魔术,可以检查2到4个名字。如果你有很多国际用户,他们可能有5个甚至6个名字,你可以把他们的名字改成5个或6个,这应该适合你。 |
|
|
16
1
要改进daan的答案:
仅允许在a-z和有效的unicode字符中出现一次连字符或撇号。 还执行回溯以确保字符串末尾没有连字符或撇号。 |
|
|
17
1
有关详细信息,请访问 THIS 邮递此正则表达式不允许使用符号AND。 |
|
|
18
0
我不认为你能用正则表达式做到这一点,你不能用正则表达式轻易地从一段文本中检测出名字,你需要一个认可名字的字典,并在此基础上进行搜索。任何不在列表中的名字都不会被检测到。 |
|
|
19
0
我使用了这个,因为名称可以是文件补丁的一部分。
|
|
|
20
0
|
|
|
21
0
我提出了一种用于名称的正则表达式模式:
它起作用了。我想你也应该用它。
它不会匹配具有2个或更多空格的字符串,例如:
上面的文本有一个结尾空格。尝试高亮显示或选择文本以查看空格
|
|
|
22
0
祝您有个美好的一天! |
|
|
23
0
如果有多个名字,您可以添加一个
|
|
|
24
0
下面的正则表达式对于专有名称(城镇、城市、名字、姓氏)简单而有用,允许所有国际字母省略基于unicode的正则表达式引擎。
正则表达式匹配:1到50个由单个分隔符(空格-')分隔的国际字母
|
|
|
25
-1
放弃你能想到的每一条规则在某些文化中都有例外。即使这种“文化”是喜欢在法律上把自己的名字改成“37 eet”的极客。 |
|
|
26
-1
Aomine的回答很有帮助,我对它做了一些调整,包括:
此外,姓名应至少包含2个字母,姓氏至少包含2个字母,但每个字母不超过20个(总共40个字符) 成功的测试用例:
|