Python中的正则表达式替代方案
正则表达式看起来很复杂,调试起来也很麻烦。有没有什么简单的替代工具,可以让普通人也能处理文本呢?
以下是一些要求:
需要是一个库或者工具(请直接指向这个库)
语法要容易理解(不需要查表)
要有带例子的文档
能够调试表达式
如果可以的话,请提到一些特定语言的解决方案和不依赖于语言的解决方案。我主要在用Python开发,但我希望看到一些可以移植到其他语言或平台的库。
我曾经听说Haskell在文本处理方面很不错,但这毕竟是一个内置语言的解决方案,不是通用的解决方案。
编辑:请不要回答“正则表达式并不糟糕,照这样做就行!”Stackoverflow.com不是发表主观意见的地方,但我认为正则表达式不好,我想看看使用它们的替代选项。
6 个回答
7
pyparsing 提供了一种创建和执行(简单)语法的另一种方法。我在一个项目中使用它来解析不同类型的日志文件,使用起来相对简单,而且比用正则表达式更直观一些。
7
你可以使用 re.VERBOSE
这个标志:
charref = re.compile(r"""
&[#] # Start of a numeric entity reference
(
0[0-7]+ # Octal form
| [0-9]+ # Decimal form
| x[0-9a-fA-F]+ # Hexadecimal form
)
; # Trailing semicolon
""", re.VERBOSE)
12
我知道这篇帖子有点旧了,但可能还是会对一些人有帮助。VerbalExpressions 在背后还是使用正则表达式,只不过它提供了一种更友好的方式。
简介:http://thechangelog.com/stop-writing-regular-expressions-express-them-with-verbal-expressions/
Python 版本:https://github.com/VerbalExpressions