假设一个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)
如果您的字符串仅包含以下块,则可以使用拆分方法:
s.split(/[\r\n]+(?=(?:GET|PUT|POST|DELETE)\b)/)
请参阅regex演示。
细节
[\r\n]+
-1个或多个CR或/和LF符号(?=(?:GET|PUT|POST|DELETE)\b)
-正超前相匹配的后面紧跟一个位置GET
,PUT
,POST
或DELETE
整个单词(因为\b
是一个字边界)。由于先行是一种非消耗模式,即,它匹配的文本不会添加到匹配值缓冲区中,因此ALLCAPS词仍会进入结果输出。
var rx = /[\r\n]+(?=(?:GET|PUT|POST|DELETE)\b)/gm;
var str = 'GET /bar\n{\n "limit": {\n "foo": 1\n }\n}\n\n\nGET /barfoo\n{\n "limit": {\n "foo": 1\n\n }\n}\n\nGET /fuzz\n{\n "limit": 1\n}';
var result = str.split(rx);
console.log(result);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句