作者:安宁日月_860 | 来源:互联网 | 2022-12-05 17:45
我是Elm解析器库的新手,我正试图摆脱使用正则表达式.我需要解析一个字符串并返回双花括号内的每个字符串的字符串列表,所以{{return this}}
我正在使用该Parser.sequence
函数,这是我的代码
block : Parser (List String)
block =
Parser.sequence
{ start = "{{"
, separator = ""
, end = "}}"
, spaces = spaces
, item = getSource
, trailing = Optional
}
我的问题是,我应该在item
字段中做什么来在大括号之间返回字符串.谢谢!
1> Igor Drozdov..:
如何为单词创建自己的解析器呢?
word : Parser String
word =
getChompedString <|
succeed ()
|. chompIf Char.isAlphaNum
|. chompWhile Char.isAlphaNum
它实际上会选择alphanum字符,因此{{return textABC123}}
会产生Ok ["return","textASD234"]
.就{{return text}}
Char.isLower
足够了.
然后你可以使用它sequence
而不是getSource
(因为getSource
也会扼杀}
字符,这在当前情况下是不合适的):
block : Parser (List String)
block =
Parser.sequence
{ start = "{{"
, separator = ""
, end = "}}"
, spaces = spaces
, item = word
, trailing = Optional
}
这是一个演示它的ellie-app示例.