正则表达式 - 匹配第二个逗号(或逗号和空格)之后的所有内容
Posted
技术标签:
【中文标题】正则表达式 - 匹配第二个逗号(或逗号和空格)之后的所有内容【英文标题】: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 中执行此操作。)
【问题讨论】:
【参考方案1】:使用 re 的完整代码示例
-
[^,]+所有不带逗号的符号
, 逗号符号
[^,]+所有不带逗号的符号
, 逗号符号
\s* 0 个或多个空格
(.+) 有用的数据
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
【讨论】:
以上是关于正则表达式 - 匹配第二个逗号(或逗号和空格)之后的所有内容的主要内容,如果未能解决你的问题,请参考以下文章