编辑:有人能帮我写一个针对这种字符串的正则表达式吗?:
[Header 1],[Head,er 2],Header 3
以便我可以将其拆分为如下块:
[Header 1]
[Head,er 2]
Header 3
我已经实现了这么多:
(?<=,|^).*?(?=,|$)
这将给我:
[标题1]
[标题2]
[标题3]
编辑:有人能帮我写一个针对这种字符串的正则表达式吗?:
[Header 1],[Head,er 2],Header 3
以便我可以将其拆分为如下块:
[Header 1]
[Head,er 2]
Header 3
我已经实现了这么多:
(?<=,|^).*?(?=,|$)
这将给我:
[标题1]
[标题2]
[标题3]
,(?=[^\]]*(?:\[|$))
每当你找到一个逗号时,你需要向前查找三种情况之一。如果你先找到了一个闭合方括号,则该逗号位于方括号对内部,因此它不是分隔符。如果你发现一个开放的方括号或者行/字符串的末尾,则它是一个分隔符。[a],[b],[c[d,e]]
可以像预期的那样工作,但在[a],[b],[c,[d,e]]
中失败了。在最后一个示例中匹配了c旁边的逗号。如何改进它,使其不匹配那个逗号? - matte[a],[b,[]]
,它匹配的是b后面的逗号。如果在[]
中有任何开放方括号,则此模式将匹配括号中的逗号。 - matte"this is me".split(/(\s)/);
和 "this is me".split(/\s/);
不同。例如,只是在分割方面不同,而不是在.match 中。JS。 - Muhammad UmerNotThis|(CaptureThis)
,但这里不需要,你在这里选择逗号是快速和高效的。 :) - zx81\[.*?\]
(?<=,|^)\s*\[[^]]*\]\s*(?=,|$)
利用[
和]
分隔符来更好地使用它们。
这难道不是很简单吗?
(?<=,|^)(?:[^,]|\[[^[]*\])*
regex = /(?<=,|^)(?:[^,]|\[[^[]*\])*/ SyntaxError: Invalid regular expression: /(?<=,|^)(?:[^,]|\[[^[]*\])*/: Invalid group
- starbeamrainbowlabs\[[^\]*]\]
(?<=]|^)\s*,\s*(?=\[|$)