Python中正则表达式的替代品

Mik*_*maa 16 python regex text full-text-search

正则表达式非常难以理解且难以调试.是否存在可以由凡人处理的文本处理的替代品?

标准包括

  • 这是一个图书馆或工具(请指出图书馆本身的答案)

  • 人类可读的语法(不需要备忘单)

  • 带示例的文档

  • 能够调试表达式

如果可能,您可以提及特定于语言和语言的解决方案.我主要是在Python上开发,但我希望看到一个可以移植到其他语言/平台的库.

我曾经读过Haskell会有很好的文本处理功能,但同样,这是一个内置的语言解决方案,而不是通用的解决方案.

编辑:请不要给出答案"正则表达式也不错,这样做!" Stackoverflow.com不是一个主观意见的地方,但我认为正则表达式很糟糕,我想看看我使用它们的替代选项.

wan*_*ghq 8

我知道这篇文章很老,但人们可能会从这个问题/答案中受益.VerbalExpressions仍在幕后使用正则表达式,但是以友好的方式.

简介:http://thechangelog.com/stop-writing-regular-expressions-express-them-with-verbal-expressions/ Python fork:https://github.com/VerbalExpressions


小智 6

pyparsing提供了另一种创建和执行(简单)语法的方法.我一直在一个项目中使用它来解析不同类型的日志文件,并且使用起来比使用正则表达式更简单,更直观.


ihu*_*cos 5

你可以使用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)
Run Code Online (Sandbox Code Playgroud)