正则表达式删除从括号内返回空格

时间:2020-06-17 16:15:44

标签: javascript regex

我正在尝试编写一个正则表达式,该表达式将仅从第一个方括号匹配中删除所有换行符/返回符/空格/制表符。

例如:

def reusable_code(text):
    try:
        a = int(text.get())
    except ValueError:
        try:
            a = int(str(text.get()) + "0")
        except ValueError:
            a = 1
            invalid += 1
    if 0 < a < 10:
        pass
    else:
        rang += 1

理想情况下会返回:

foo\r

{{\n    $uppercase($for(Baz, "roar\\n foo {{value}} \\r"))\n    }}
{{$uppercase("baz\n") }}

baz

我尝试过这样的事情:

foo\r

{{$uppercase($for(Baz, "roar\\n foo {{value}} \\r"))}}
{{$uppercase("baz\n")}}

baz

但似乎无法正确匹配。

谢谢!

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题!根据匹配的括号(带括号的括号和不带括号的括号)将字符串拆分为块的想法。循环浏览您的块,找到带有双括号的块,然后从该块中删除所有换行符。完成循环后,重新组装为字符串。 Voilà。

const newString = str.split(/({{.*?}})/sg).reduce((a, v) => 
  (v.includes('{{') ? a + v.replace(/(\r\n|\n|\r)/gm,"") : a+v)
,'');