【发布时间】:2017-02-28 07:44:02
【问题描述】:
我想用冒号分割一个字符串。
这是一个输入示例:
str = "one[two:[three::four][five::six]]:seven:eight[nine:ten]"
这是一个输出示例:
array = ["one[two:[three::four][five::six]]", "seven", "eight[nine:ten]"]
目的是理解regex代表括号外的冒号和嵌套的括号。
但是有一些限制:
- 正则表达式的模板必须是这样的:
^(.+)<colon_regex>(.*)<colon_regex>(.*)$ - 匹配项必须是唯一的,包含三个组。
你能给我一个建议吗?
【问题讨论】:
-
那么,第一个约束意味着
one:two:three:four应该不匹配,对吧? -
谢谢卡里。刚刚编辑。
-
Wiktor 这个输入 str = "one:two:three:four" 必须产生这个输出数组 = ["one", "two", "three", "four"] 但使用这个模板 ^ (.+)
(.*) (.*) (.*)$ -
你不能在获得所有匹配项后使用特殊检查吗?请参阅ideone.com/xOPItz,其中使用
chunk_countvar 实现该约束。 -
没有。我不能。我需要单行正则表达式。 ......或更好......单行正则表达式的傀儡需求。