【发布时间】:2016-02-04 21:17:02
【问题描述】:
我目前正在尝试使用 Elm 0.16 中的正则表达式在字符串中查找左括号,并将每个括号替换为后跟一个空格的括号。我还计划将字符串中的每个右括号替换为一个空格,后跟一个右括号。这样我就可以用逗号替换空格来分隔字符串。我尝试使用正则表达式的字符串在这里:
((data "引用数据" 123 4.5) (data (!@# (4.5) "(more" "data)")))
我已经使用正则表达式来删除用于转义引号的任何反斜杠。为此我使用了这个功能:
getRidOfBackslashes : String -> String
getRidOfBackslashes sExpression =
sExpression
|> Regex.replace Regex.All (Regex.regex "\\g") (\_ -> "")
然后我尝试使用以下函数来实现前面提到的关于左括号的目标:
createSpacesParentheses sExpression =
sExpression
|> (\_ -> getRidOfBackslashes sExpression)
|> Regex.replace Regex.All (Regex.regex "\(") (\_ -> "( ")
查看不同的 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.
我想知道我是否以正确的方式处理这件事,是否有人可以提供帮助。提前致谢。
【问题讨论】:
-
如果转义有问题,使用字符类:
[(]。但似乎你也可以双重转义(:\\( -
非常感谢您的完美运行。