【问题标题】:Regex - Match everything after second comma (or comma and space)正则表达式 - 匹配第二个逗号(或逗号和空格)之后的所有内容
【发布时间】:2022-01-05 17:28:09
【问题描述】:

我查看了这个链接:Regex - Match everything after second occurence。我似乎无法用 http:// 代替逗号,更不用说逗号和空格了。这是我正在使用的字符串示例:

42:A:b41a2431,B:7615239a,我们,是(冠军12)

我希望在第二个 ", "... 之后提取 anything

所以,那就是:

我们,是(冠军12。)

(如果有帮助,我将在 Python 中执行此操作。)

【问题讨论】:

    标签: python python-3.x regex


    【解决方案1】:

    使用 re 的完整代码示例

    1. [^,]+所有不带逗号的符号
    2. , 逗号符号
    3. [^,]+所有不带逗号的符号
    4. , 逗号符号
    5. \s* 0 个或多个空格
    6. (.+) 有用的数据
    import re
    data="42: A: b41a2431, B: 7615239a, we, are(the champion 12 .)"
    re.findall(r'[^,]+,[^,]+,\s*(.+)',data)
    

    输出

    ['we, are(the champion 12 .)']
    

    【讨论】:

      【解决方案2】:

      你不能只使用 split() 和 join() 吗?

      string = "42: A: b41a2431, B: 7615239a, we, are(the champion 12 .)"
      result = ", ".join(string.split(", ")[2:])
      print(result)
      

      输出:

      'we, are(the champion 12 .)'
      

      【讨论】:

        【解决方案3】:

        正则表达式对您不起作用,因为情况有点不同
        该正则表达式假定字符串 starts 以 http(s)://
        如果所有测试字符串都有 2 个逗号,那么正则表达式非常简单
        .*?,.*?,(.+) *?表示惰性(与贪婪)量词,因此它不会吃下一个逗号(因为它适合“任何字符”.

        你可以在这里看到演示https://regex101.com/r/XjLOVz/1

        【讨论】:

          猜你喜欢
          • 2016-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多