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

Regex 用于从字符串中分离可选尾随数字的正则表达式,regex,Regex,我需要以字符串形式将名称与数字ID分开,如 约翰·史密斯先生1111 其中,末尾的ID是可选的 所以它应该是两个捕获组-一个用于名称,另一个用于数字ID 我想到了以下几点 /^(?P[^\d]+)(?P(?您可以使用 ^(?P<name>.+?)(?:\s+(?P<id>\d+))?$ ^(?P.+)(?:\s+(?P\d+)$ 看 详细信息 ^- (?P.+?)-捕获1个或多个字符(除换行符字符外)的组“名称”是一个尽可能少的组(即,此模式首先匹配第一个字符,然后

我需要以字符串形式将名称与数字ID分开,如

约翰·史密斯先生1111

其中,末尾的ID是可选的

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

我想到了以下几点

/^(?P[^\d]+)(?P(?

您可以使用

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

详细信息

  • ^
    -
  • (?P.+?)
    -捕获1个或多个字符(除换行符字符外)的组“名称”是一个尽可能少的组(即,此模式首先匹配第一个字符,然后被跳过,尝试后续子模式,仅当它们失败时,此模式才被“扩展”)
  • (?:\s+(?P\d+))
    -匹配的可选选项
    • \s+
      -1+空格字符
    • (?P\d+)
      -组“id”:1+位
  • $
    -
^(?P<name>.+?)(?:\s+(?P<id>\d+))?$