如何使用正则表达式将','除非','括在字符串中?

Nat*_*ate 11 regex string

编辑:任何人都可以帮助我使用正则表达式为这样的字符串?:

[Header 1], [Head,er 2], Header 3

这样我就可以把它分成几块:

[Header 1]
[Head,er 2]
Header 3

我已经达到了这个目的:

(?<=,|^).*?(?=,|$)
Run Code Online (Sandbox Code Playgroud)

哪个会给我:

[Header 1]
[Head
,er 2]
Header 3

Ala*_*ore 17

在这种情况下,分隔符(逗号)比匹配标记(或块)更容易.识别分隔符的逗号需要相对简单的预测:

,(?=[^\]]*(?:\[|$))
Run Code Online (Sandbox Code Playgroud)

每次找到逗号时,都会对三件事之一进行预测.如果您首先找到一个结束方括号,则逗号位于一对括号内,因此它不是分隔符.如果找到一个左括号或行/字符串的末尾,则它是一个分隔符.


JP *_*oto 6

\[.*?\]
Run Code Online (Sandbox Code Playgroud)

忘了逗号,你不关心它们.:)