【发布时间】:2013-05-01 17:29:55
【问题描述】:
使用 Java 和正则表达式,我想从一行文本中提取字符串。 文本可以采用以下格式 -
- key1(value1) key2(value2)
- key1(value1) key2
- key1 key2(value2)
- key1 key2
- key1
当使用 Type #1 时,我能够成功提取键和值,我可以使用空格分割文本,然后使用以下模式来提取键
Pattern p = Pattern.compile("\\((.*?)\\)",Pattern.DOTALL);
一个复杂的代码逻辑,用于计算“(”的出现并将其与出现的匹配 该空间可用于案例#2 和案例#3,但是,代码变得太长了。当值中也存在空格时,会出现多种复杂情况,因为这样分割文本就会成为问题。
是否有更好的正则表达式拆分/保留可以用于上述选择性案例?
【问题讨论】:
-
您是否假设键和值中没有括号?
-
是的@merlin2011,它们的键和值本身没有括号。