Regex 如何在逗号上拆分,除非它们';你在括号里没有周围人吗?
有很多类似的问题,不幸的是,这些解决方案都不起作用 这包含一个输入示例和一个完全工作的正则表达式: (从下面的链接复制并粘贴) 正则表达式:Regex 如何在逗号上拆分,除非它们';你在括号里没有周围人吗?,regex,string,go,Regex,String,Go,有很多类似的问题,不幸的是,这些解决方案都不起作用 这包含一个输入示例和一个完全工作的正则表达式: (从下面的链接复制并粘贴) 正则表达式:,(?!([^[^>]*>) 样本: Hello, Fellow, Humans, How, are ,<,>, you, Hello<my, fellow> Hello "please to meat, you" Deeploy, <<nested, >> comments, 你好,
,(?!([^[^>]*>)
样本:
Hello, Fellow, Humans,
How, are ,<,>, you,
Hello<my, fellow>
Hello "please to meat, you"
Deeploy, <<nested, >> comments,
你好,伙计,人类,
你怎么样,
你好
你好“请吃肉,你”
Deeploy,评论,
它只正确地选择任何外部的逗号
问题是:
我使用的语言(GO)不允许向前看或向后看
有没有一种方法可以用逗号和正则表达式雄辩地分开?
或者我必须手动执行查找或某种匹配检查吗
我的目标是:
split := compiledRegex.Split("Example string, With <Deeply, Nested Comments> split, up", -1)
split = ["Example string", "With <Deeply, Nested Comments> split", "up"]
split:=compiledRegex.split(“示例字符串,带拆分,up”,-1)
split=[“示例字符串”、“带拆分”、“向上”]
FYI您当前的带有lookarounds的正则表达式实际上不起作用,因为它会错误地匹配,
:正确处理带有正则表达式的平衡嵌套结构的唯一方法是使用golang没有内置的正则表达式引擎。Try,匹配:=regexp.MustCompile(`(?:+|[^,])+`.FindAllString(text,-1)
Regex可能是最糟糕的尝试方式。状态机解析器将是更好的解决方案,尤其是如果您想有任何方法转义括号或逗号。如果括号改为引号,您可以使用CSV,这样行吗?