在Elm 0.16中查找并替换字符串中的括号

Tho*_*oyd 5 regex elm

我目前正在尝试使用Elm 0.16中的正则表达式在字符串中找到左括号,并用括号后跟一个空格替换它们中的每一个.我还打算用一个空格后跟一个右括号替换字符串中的每个右括号.这样我就可以用逗号替换空格来分隔字符串.我试图使用正则表达式的字符串在这里:

((数据"引用数据"123 4.5)(数据(!@#(4.5)"(更多""数据"))))

我已经使用正则表达式删除用于转义引号的任何反斜杠.为此,我使用了这个功能:

getRidOfBackslashes : String -> String
getRidOfBackslashes sExpression = 
    sExpression
      |> Regex.replace Regex.All (Regex.regex "\\g") (\_ -> "")
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用以下函数来实现前面提到的关于开括号的目标:

createSpacesParentheses sExpression =
     sExpression
       |> (\_ -> getRidOfBackslashes sExpression)
       |> Regex.replace Regex.All (Regex.regex "\(") (\_ -> "( ")
Run Code Online (Sandbox Code Playgroud)

看着不同的javascript正则表达式检查器,我非常简单的正则表达式似乎做了我想要的但是Elm编译器给了我错误:

(line 1, column 3): unexpected "(" expecting space, "&" or escape code

27?       |> Regex.replace Regex.All (Regex.regex "\(") (\_ -> "( ")
                                                      ^
Maybe <http://elm-lang.org/docs/syntax> can help you figure it out.
Run Code Online (Sandbox Code Playgroud)

我想知道我是否以正确的方式解决这个问题,如果有人能提供帮助的话.提前致谢.

Wik*_*żew 4

请参阅此参考

小心正确转义反斜杠!例如,"\w"转义字母w可能不是您想要的。您可能想要"\\w" 相反,它可以避免反斜杠。

因此,简单的方法是仅使用字符类[(](如在字符类中,所有“特殊”字符,但\]^-失去其特殊含义),或者您可以使用\\(