【发布时间】:2014-07-27 14:46:22
【问题描述】:
我正在尝试从一个大字符串中提取子字符串。 提取的子字符串应遵循以下规则: 1. 在两个双引号之间(例如:"hello \"jonathan\" how are you")会提取"jonathan"(不带双引号)。
与 1 相同,只是用单引号。
当单引号被双引号包围时,它被视为常规字符。 (例如:“Hello "Jonathan how 'are'" you today")会提取这个子字符串:“Jonathan how 'are'”——不带双引号。
我一直在尝试许多涉及这种模式的组合:
Pattern p1 = Pattern.compile("([\"]*[\']*[\']*[\"])");
这个解决了一个问题(数字 3),在这个例子中:
String s = "Hello \"Jon\'hello\'athan\" how are 'you'"
它确实提取了
Jon'hello'athan
但是当我添加类似:
([\'])|[\"])
对于模式,它把它当作整个模式来对待
([\'])|[\"])
你会推荐什么? 谢谢你
【问题讨论】:
标签: regex string double quotes