gpt4 book ai didi

Python Regex Split 以一种奇怪的方式进行交互

转载 作者:太空狗 更新时间:2023-10-30 02:36:45 25 4
gpt4 key购买 nike

我正在做我的形式语言作业,在尝试使用 regex.split(param)

处理 Python Regex 时遇到了一些麻烦

我有以下文字:

{q0,q1,q2,q3},{a,b},q0,{q1,q3}

必须拆分为:

["q0,q1,q2,q3", "a,b", "q0", "q1,q3"]

它始终以逗号分隔,并且包含可能以字母或数字开头的字母数字值。

为了实现上述分离,我创建了这段非常长的代码,处理 String.join()Array.split():

[x for x in ' '.join(' '.join(' '.join(args.split(',{')).split('}')).split('{')).split(' ') if x != '']

我用 REGEX 尝试了以下方法,但它根本不起作用:

re.compile("(,{)|}|{|(},)")

它返回我:

['', None, None, 'q0,q1,q2,q3', None, None, '', ',{', None, 'a,b', None, None, ',q0', ',{', None, 'q1,q3', None, None, '']

很容易处理所有这些错误的值,但为什么要在数组中保留诸如 ,{ 之类的东西?

最佳答案

您可以通过简单的re.findall 立即获得想要的结果。可选地在一组中重复单词字符后跟逗号,然后以更多单词字符结束:

str = '{q0,q1,q2,q3},{a,b},q0,{q1,q3}'
re.findall(r'(?:\w+,)*\w+', str)

输出:

['q0,q1,q2,q3', 'a,b', 'q0', 'q1,q3']

关于Python Regex Split 以一种奇怪的方式进行交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52574877/

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