【问题标题】:Capturing String Right Before Comma in Regex在正则表达式中捕获逗号之前的字符串
【发布时间】:2012-08-29 22:16:42
【问题描述】:

我正在编写一些原始的正则表达式代码并在在线测试仪上对其进行测试。我想正确捕获字符串列表 逗号前。具体来说,我想在逗号之前最多捕获 3 个字符串。例如。

string string string,

我想捕获“string string string”(包括空格)。

我该怎么做?

【问题讨论】:

    标签: regex capture


    【解决方案1】:

    捕捉逗号前字符最安全的方法是:^([^,]*)

    解释:

    ^        Start of string
    (        Start of capture group
    [^,]*    Any number of any non-comma characters
    )        End of capture group
    

    【讨论】:

    • 如果逗号是可选的,这是正确的解决方案。
    • 纯金。与可选逗号完美搭配
    【解决方案2】:

    如果你的字符串只以逗号结尾,你可以使用这样的东西:

    (.*?),
    

    如果你的字符串包含一个逗号,这应该可以:

    (.*),
    

    ? 使第一个模式的捕获组尽可能不贪婪。删除它会使捕获组变得贪婪。

    【讨论】:

    • 你能解释一下吗?为什么用“。”而不是 ^\w 或 [A-Z]? ?
    • . 匹配任何字符。如果您想限制您的字典,请使用其他内容。
    【解决方案3】:
    ^[^,]+
    

    从字符串的开头开始,获取所有不是逗号的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      相关资源
      最近更新 更多