正则表达式:引号内的引号

时间:2011-04-05 11:25:40

标签: java regex

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

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

我想从上面的字符串中提取“这是”示例“数据”。请给我一个正则表达式,它可以返回我想要的结果

更多详情

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

请你为这种事情建议一个正则表达式

我使用(keywords|name|title) = (.*?(\\\".*\\\").*?)作为正则表达式,但它没有按预期工作。它将整个字符串返回给我。

提前致谢。

1 个答案:

答案 0 :(得分: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"中应该匹配什么?
  • 如果您想将""视为左右括号,则正则表达式不适合您。