2011-04-05 193 views
0

我需要做以下类型的正则表达式匹配正则表达式:引号中引号

例如,如果我有一个字符串 - some "This is "sample" data" example

我想提取“这是‘样本’数据”出上面的字符串。可否给我一个正则表达式,可以回到我想要的结果

更多详细信息

我有一个字符串 - keyword = "This is "blood" sample" AND name = "some text"。 我需要提取 关键字=“这是”血液“样本” name =“一些文本” 作为两个单独的字符串。

可否请你建议为这种事情

我以前(keywords|name|title) = (.*?(\\\".*\\\").*?)作为正则表达式正则表达式,如预期这是行不通的。它将整个字符串返回给我。

在此先感谢。

+1

1)您使用哪种工具进行提取?处理引号等事情的细节可能因工具而异。 2)你想要准确地匹配该字符串,或者是否包含其他引用数据的任何引用数据?即,你想匹配“a”b“c”吗? – 2011-04-05 11:27:52

+0

那么你对此感兴趣的团队是由一对双引号括起来的吗?并且可以在这个组里面加双引号? – 2011-04-05 11:28:08

+1

你能提供更多的例子吗?正确的和不正确的匹配。 – aioobe 2011-04-05 11:31:42

回答

2

不太清楚你在做什么,所以我会通过猜测填补空白。

Pattern p = Pattern.compile(".*?(\\\".*\\\").*?"); 
Matcher m = p.matcher("some \"This is \"sample\" data\" example"); 

if (m.matches()) 
    System.out.println(m.group(1)); 

输出:

"This is "sample" data" 

一些言论:

  • 我应该在a b "c d "e f "g h" i j" k l" m n相匹配?
  • a "b" c"应匹配什么?
  • 如果您想将""作为开括号和右括号,则正则表达式不适合您。
+0

为什么我们需要3个反斜杠?我正在研究类似的问题,我认为2是我们需要的 – 2013-10-24 05:15:09

+0

第三个反斜杠是为了避免让终结字符串文字。 – aioobe 2013-10-24 07:25:39

相关问题