正则表达式字符串获取字符之间的内容

时间:2017-11-30 19:28:08

标签: regex

我有字符串:

str = 'select(a,b,c).where(d,e,f).order(i,j,k)'

我可以获得a,b,cd,e,f以及i,j,k的正则表达式是什么?

{
   select: 'a,b,c',
   where: 'd,e,f',
   order: 'i,j,k'
}

谢谢!!!

2 个答案:

答案 0 :(得分:0)

要捕获a,b,cd,e,f以及i,j,k,我认为您使用了捕获组:

\(([^\)]+)

  • 匹配左括号\(
  • 启动捕获组(
  • 匹配,直到遇到右括号)[^\)]+
  • 关闭捕获组)

答案 1 :(得分:0)

不完全清楚你想要什么,但我想可能是这样的:

var str = 'select(a,b,c).where(d,e,f).order(i,j,k)';
str = "{\n\t" + str.replace(/\(/g, ": '").replace(/\)/g, "'").replace(/\./g, ",\n\t") + "\n}";
console.log(str);

打印:

{
    select: 'a,b,c',
    where: 'd,e,f',
    order: 'i,j,k'
}