gpt4 book ai didi

用于重复字符串的python正则表达式

转载 作者:行者123 更新时间:2023-11-28 19:46:00 25 4
gpt4 key购买 nike

我想验证然后解析这个字符串(引号):

string = "start: c12354, c3456, 34526; other stuff that I don't care about"
//Note that some codes begin with 'c'

我想验证字符串是否以“start:”开头并以“;”结尾之后,我想让一个正则表达式解析出字符串。我尝试了以下 python 重新代码:

regx = r"start: (c?[0-9]+,?)+;" 
reg = re.compile(regx)
matched = reg.search(string)
print ' matched.groups()', matched.groups()

我尝试了不同的变体,但我可以得到第一个或最后一个代码,但不能得到所有三个的列表。

或者我应该放弃使用正则表达式?

编辑:更新以反射(reflect)我忽略的部分问题空间并修复了字符串差异。 感谢您在这么短的时间内提出所有建议。

最佳答案

在 Python 中,这对于单个正则表达式是不可能的:组的每次捕获都会覆盖同一组的最后一次捕获(在 .NET 中,这实际上是可能的,因为引擎会区分捕获和组)。

您最简单的解决方案是首先提取start:; 之间的部分,然后使用正则表达式返回all 匹配,而不仅仅是单个匹配,使用 re.findall('c?[0-9]+', text) .

关于用于重复字符串的python正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com