gpt4 book ai didi

JavaScript 名称正则表达式

转载 作者:行者123 更新时间:2023-11-29 10:48:17 25 4
gpt4 key购买 nike

我正在尝试为名称编写正则表达式。名字可以选择以头衔开头(博士、夫人等),或者包含两个或三个名字,中间名可以选择以 (X.) 形式缩写

例如,应匹配以下名称:

  • 博士杰夫·T·沃克
  • 苏珊·安东尼
  • 先生迈克尔·宾厄姆顿
  • 夫人乔治·布什

以下不应匹配

  • 加菲猫
  • 博士J
  • T。疼痛
  • 美利坚合众国
  • 2020 年 2 月 15 日

这是我的:

^(Dr\.|Mr\.|Mrs\.)?[A-Z][a-z]+\s([A-Z][a-z]+|[A-Z]\.)\s[A-Z][a-z]+?

我不太确定哪里出错了。

最佳答案

^((Dr|Mr|Mrs)\. )?[A-Z][a-z]+( [A-Z]([a-z]+|\.))? [A-Z][a-z]+

这是我修复它的方法:

  • 在前缀后添加一个空格 - 之前,您匹配的是“Dr.James”,而不是“Dr.James”
  • 在姓氏之后移除末尾的问号 - 如果不在括号之后,? 会导致“lazy matching” - 匹配尽可能少的字符(在本例中为 1)
  • 使中间名可选
  • 删除了一些冗余(例如前缀和中间名)
  • \s 替换为空格 - 更易于阅读,并且\s 匹配制表符、换行符等。

关于JavaScript 名称正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15232348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com