2
我想分析一个字符串,如"ParseThis"
或"parseThis"
成像字符串的向量,如["Parse", "This"]
或["parse", "this"]
使用nom箱子。解析驼峰字符串与名字
我试过的所有尝试都没有返回预期的结果。有可能我不明白如何使用nom中的所有函数。
我想:
named!(camel_case<(&str)>,
map_res!(
take_till!(is_not_uppercase),
std::str::from_utf8));
named!(p_camel_case<&[u8], Vec<&str>>,
many0!(camel_case));
但p_camel_case
刚刚返回Error(Many0)
解析以大写字母开头的字符串和解析以小写字母返回Done
开头的字符串,但有一个空字符串作为结果。
如何告诉nom我想分析字符串,并用大写字母分隔(因为可以有第一个大写或小写字母)?
谢谢你的作品非常好!你花了多长时间才知道nom在足够的时间内完成了这项工作?我正在开发一个需要解析大量字符串的大型项目,对于使用nom的更简单的东西,但仍然很难找到我的方式,例如,我从来没有在 – Max
之前看到'!recogn'的例子。例如:我想要现在先通过一个我写'parse_camel_case'的函数来解析一个字符串,然后每个单词用'parse_camel_case'解析它。我正在检查示例解析器,但没有看到我想要做的事情,将'Vec <&str>'从一个解析器拖到另一个解析器。不知道如何继续。 – Max
这就是为什么我参与堆栈溢出的原因;-)例如,我知道“识别!”,因为[有人问过它](http://stackoverflow.com/q/36300373/155423)。我不是nom的文档的最大粉丝(所以我自己编写了我自己的解析器库,**更少的**文档)。你的后续问题可能应该作为一个单独的主题发布,因为我不知道如何解决它,并且不太可能有人会阅读这些评论。 – Shepmaster