首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一页一页的数字或字母序列?

一页一页的数字或字母序列?
EN

Stack Overflow用户
提问于 2016-04-19 01:17:53
回答 1查看 120关注 0票数 3

所以我一直在和instaparse混在一起,这很棒,但是我一直试图避免使用Regexes作为拐杖,这导致了更多的冗长。为了保持这种可读性,让我们简单地说,#'[A-z]'实际上是'A'|'B'|etc格式。

代码语言:javascript
复制
(def myprsr (instaparse.core/parser 
  "word = (ltr | num)+; 
   <ltr> = #'[A-z]';
   <num> = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';"))
(myprs"foo123") ;; -> [:word "f" "o" "o" "1" "2" "3"]

有没有办法不诉诸#'[A-z]+'#'[0-9]+,像[:word "foo123"][:number "123"] (如果我制定了一个数字的toplevel规则)那样去掉它们,以避免将它们作为解析后处理的一部分连接起来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-21 03:49:37

目前没有方法(除了regexes)在解析期间自动合并这些字符串。我建议在insta/transform映射中进行这种连接。

在这样简单的情况下使用regexes也没有什么问题。我们知道,如果贪婪地解析所有的字母或数字,我们就不会错过一个可能的解析。因此,正则表达式是可以接受的(并且更有表现力)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36706854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档