【问题标题】:Ruby Regex solution for 3 types of strings适用于 3 种字符串的 Ruby 正则表达式解决方案
【发布时间】:2017-07-14 02:22:54
【问题描述】:

我需要抓取字符串的第一部分。 我需要匹配的三种情况是:

  1. 琼斯集团
  2. 阿曼达·琼斯,
  3. 威廉·史密斯,导演

我只想获取名称(The Jones Group、Amanda Jones 和 William Smith),而不是逗号或逗号后面的任何内容。有时一个名字会出现一个逗号,后面什么都没有。其他时候只使用组名(即斯坦利团队)。

我用过

/^(\w.+),.+/

但这对于情况 1) 和 2) 失败

我也试过了

/(\w.+)?,/

但这对于 1) 失败

【问题讨论】:

  • 您对要匹配的内容的描述含糊不清。连续两个名字,每个名字都以大写字母开头,后跟小写字母并用空格分隔?只有一个名字本身是有效的吗?可能只是' 之后的任何内容,直到另一个',
  • 使用字符类[^,]

标签: ruby regex


【解决方案1】:

您可以使用它来匹配所有 3 个:

^([\w ]+)?,?.*$

请注意,[ ] 中有一个空格来匹配名称之间的空格而不是所有字符 - 否则,它也会将“导演”纳入捕获组。

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 2018-11-21
    • 2022-01-25
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2021-02-13
    相关资源
    最近更新 更多