使用Java和正则表达式,我想从一行文本中提取字符串。 的文本可以是在下面的格式 -使用Java和正则表达式分割复杂的字符串
- KEY1(值1)KEY2(值2)
- KEY1(值1)KEY2
- KEY1 KEY2(值2)
- KEY1 KEY2
- KEY1
当我使用空格分割文本,然后使用下面的模式提取关键字时,使用Type#1时,我能够成功地提取键和值小号
Pattern p = Pattern.compile("\\((.*?)\\)",Pattern.DOTALL);
用于计数的次数“(”和与 空间occurence可用于例#2和情况#3匹配它一个复杂的代码的逻辑,但是,代码变得太长。当空间出现在值中时也会出现多重复杂化,因为这样会使文本分裂成为问题。
有没有更好的正则表达式split/holiding我可以用于上面描述的选择性案例?
你assumin g键和值在它们中没有括号吗? – merlin2011 2013-05-01 17:32:25
是@ merlin2011,他们的键和值本身没有括号。 – Prasoon 2013-05-01 17:47:33