如何将下一个字符串分成组?

时间:2018-05-08 11:58:38

标签: javascript node.js regex

假设textarea具有以下内容(字符串),哪个正则表达式可用于拆分组?

GET /bar
{
  "limit":  {
     "foo": 1
   }
}

GET /barfoo
{
  "limit": {
     "foo": 1
   }
}

GET /fuzz
{
  "limit": 1
}

当一个组是下一个输出时我的意思是什么:

GET /fuzz
{
  "limit": 1
}

我尝试了下一个正则表达式但没有成功:

((GET|PUT|POST|DELETE).*\n{\n(.*\n)+}\n)

1 个答案:

答案 0 :(得分:0)

如果您的字符串仅包含这些块,则可以使用拆分方法:

s.split(/[\r\n]+(?=(?:GET|PUT|POST|DELETE)\b)/)

请参阅regex demo

<强>详情

  • [\r\n]+ - 一个或多个CR或/和LF符号
  • (?=(?:GET|PUT|POST|DELETE)\b) - 与GETPUTPOSTDELETE整个单词紧随其后的位置匹配的正向前瞻(自{{ 1}}是一个单词边界。)

由于前瞻是非消费模式,即它匹配的文本没有添加到匹配值缓冲区,ALLCAPS字仍会进入结果输出。

\b