Python中的正则表达式替代方案

19 投票
6 回答
10243 浏览
提问于 2025-04-16 21:40

正则表达式看起来很复杂,调试起来也很麻烦。有没有什么简单的替代工具,可以让普通人也能处理文本呢?

以下是一些要求:

  • 需要是一个库或者工具(请直接指向这个库)

  • 语法要容易理解(不需要查表)

  • 要有带例子的文档

  • 能够调试表达式

如果可以的话,请提到一些特定语言的解决方案和不依赖于语言的解决方案。我主要在用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

撰写回答