针对美国和英国名称改进以下正则表达式
Improving the below RegEx for US and UK Names
我正在寻找验证英文名称。我如何改进此 RegEx 以确保连字符、逗号或撇号不会在字符串中出现在最前面或最后?此外,连字符或撇号必须始终紧跟字母。
我有正则表达式:[a-zA-Z-', ]
。
我的理解是,这将允许所有字母,在所有情况下,包括连字符、逗号和撇号以及字符串中任何位置的空格。
对这门语言还很陌生,所以只是想了解一下。
谢谢。
好的,因为它只是给了一个假定的名称,下面是您可能想尝试的名称:
^[A-Z][A-Za-z'-]+[a-z](,? [A-Z][A-Za-z'-]+[a-z])*$
这将适用于像 O'Harry
Jefferson-Wayne
这样的名称,但会拒绝不以小英文字母结尾的单词。
它的要点是 [A-Z]
名称开头,[A-Za-z'-]+
延续,[a-z]
名称结尾。然后是一组可重复的可选名称,带有可选的逗号分隔符,但需要 space.
我花了更多时间编写示例以在 http://www.regexplanet.com/ 进行测试。那是我在开发时练习正则表达式的地方。你应该试试看。
我正在寻找验证英文名称。我如何改进此 RegEx 以确保连字符、逗号或撇号不会在字符串中出现在最前面或最后?此外,连字符或撇号必须始终紧跟字母。
我有正则表达式:[a-zA-Z-', ]
。
我的理解是,这将允许所有字母,在所有情况下,包括连字符、逗号和撇号以及字符串中任何位置的空格。
对这门语言还很陌生,所以只是想了解一下。
谢谢。
好的,因为它只是给了一个假定的名称,下面是您可能想尝试的名称:
^[A-Z][A-Za-z'-]+[a-z](,? [A-Z][A-Za-z'-]+[a-z])*$
这将适用于像 O'Harry
Jefferson-Wayne
这样的名称,但会拒绝不以小英文字母结尾的单词。
它的要点是 [A-Z]
名称开头,[A-Za-z'-]+
延续,[a-z]
名称结尾。然后是一组可重复的可选名称,带有可选的逗号分隔符,但需要 space.
我花了更多时间编写示例以在 http://www.regexplanet.com/ 进行测试。那是我在开发时练习正则表达式的地方。你应该试试看。