用正则表达式获取引号内的键

时间:2014-06-23 05:41:26

标签: regex json

我有这种风格的JSON:

define({
  somekey : "Some {text} here:",
  'some-key' : "Text:",
  'key/key' : 'Some : text',
  key: 'some value',
  'my-key' : 'my text',
  'my/key' : 'my topic text'
  "my-key" : "my topic text"
});

我需要扩展此正则表达式(?m)^[ ]*([^\r\n:]+?)\s*:/g,以便我获得没有引号的键。

在上面的示例中,我想得到:somekey, some-key, key/key, key, my-key, my/key, my-key(如果引号存在并且只返回键,则会忽略引号)。

示例是here,但它返回带引号的键。

2 个答案:

答案 0 :(得分:1)

只需将它们设为可选:

(?m)^ *'?([^'\r\n:]+?)'?\s*:/g

答案 1 :(得分:1)

你可以试试这个正则表达式,

(?m)^[ ]*\'?\"?([\w-/]+)\'?\"?\s*:

DEMO

OR

(?m)^[ ]*\'?\"?([^'"(\s]+)\'?\"??\s*:

DEMO