gpt4 book ai didi

regex - 用于从字符串中分离可选尾随数字的正则表达式

转载 作者:行者123 更新时间:2023-12-04 23:28:02 25 4
gpt4 key购买 nike

我需要在字符串中将名称与数字 ID 分开

Mr. John Smith 1111

最后的 ID 是可选的。

所以它应该是 2 个捕获组 - 一个用于名称,另一个用于数字 ID。

我想出了以下 regular expression:

/^(?P<name>[^\d]+)(?P<id>(?<= )\d+)?$/

问题是:

  1. 如何修剪name 组?目前我在它的末尾有空格。
  2. 如何让名字包含数字?如果我将 [^\d] 替换为 .*name 组中,它会捕获整个字符串。
  3. 你能想到这个字符串的正则表达式的更好版本吗?

最佳答案

你可以使用

^(?P<name>.+?)(?:\s+(?P<id>\d+))?$

参见 regex demo .

详情

  • ^ - start of string
  • (?P<name>.+?) - 捕获除换行字符以外的 1 个或多个字符的组“名称”尽可能少*?lazy quantifier (即这个模式首先匹配第一个字符,然后被跳过,尝试后续的子模式,只有当它们失败时,这个才被“扩展”)
  • (?:\s+(?P<id>\d+))? - 一个可选的 non-capturing group那匹配
    • \s+ - 1+ 个空白字符
    • (?P<id>\d+) - 组“id”:1+ 位
  • $ - end of string .

关于regex - 用于从字符串中分离可选尾随数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50644031/

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