RegEx捕获多个变量

时间:2014-08-01 14:59:38

标签: regex

如何捕捉粗体部分:

  

" _id":" 12345abcd ",

     

" _rev":" 1- abti-2745 ",

     

"问题":" 你多大了?",

我需要在一个RegEx表达式上执行此操作。

这是我到目前为止所做的:

/("_id": "(.*?)")|("_rev": "(.*)")/is

/"_id": "(.*)",.*?"_rev": "?(.*)"?,/is

2 个答案:

答案 0 :(得分:0)

如果您不想使用。前瞻,后瞻,你可以试试:

"[^"]*":\s"([^"]*)",

粗体区域位于第一个也是唯一一个捕获组中。

答案 1 :(得分:0)

你可以试试下面的正则表达式,

"_?(?:id|rev|question)":\s*"(?:.*?-)?([^"]*)",

DEMO

<强>解释

  • _?可选的下划线符号。
  • (?:id|rev|question)":非捕获组,其匹配字符串idrevquestion以及以下":个字符。
  • \s*匹配零个或多个空格字符。
  • (?:.*?-)?最短的匹配到第一个 - 符号。非捕获组将其作为可选组之后的?
  • ([^"]*)捕获任何不是"零次或更多次的字符。
  • ",匹配文字",符号。