【发布时间】:2019-02-11 15:56:38
【问题描述】:
我想用“/”分割字符串并忽略外括号内的“/”。
示例输入字符串:
"Apple 001/(Orange (002/003) ABC)/Mango 003 )/( ASDJ/(Watermelon )004)/Apple 002 ASND/(Mango)"
字符串数组中的预期输出:
["Apple 001", "(Orange (002/003) ABC)", "Mango 003 )/( ASDJ", "(Watermelon )004)", "Apple 002 ASND", "(Mango)"]
这是我的正则表达式:
\/(?=(?:[^\(\)]*\([^\(\)]*\))*[^\(\)]*$)
但它只能支持这样的简单字符串:
"Apple 001/(Orange 002/003 ABC)/Mango 003 ASDJ/(Watermelon 004)/Apple 002 ASND/(Mango)"
如果有内括号,则结果不正确。
【问题讨论】:
-
虽然有人可以在这里给你一个正则表达式,但一般来说正则表达式不太适合嵌套内容。
-
有时最好的方法就是编写一个解析器。这可能很棘手,但在这种情况下并不是很棘手,我不认为。