我想创建一个Python函数,可以采取简单的英文描述的正则表达式并返回正则表达式给调用者。是否需要更正式表达正则表达式的声明方式? :)
当前我正在考虑YAML格式的描述。 因此,我们可以将描述存储为一个原始字符串变量,将其传递给另一个函数,然后将该函数的输出传递给're'模块。下面是一个比较简单的例子:
# a(b|c)d+e*
re1 = """
- literal: 'a'
- one_of: 'b,c'
- one_or_more_of: 'd'
- zero_or_more_of: 'e'
"""
myre = re.compile(getRegex(re1))
myre.search(...)
等
有谁想到这种事情会更广泛地使用? 你知道现有的软件包可以做到吗? 您看到这种方法的局限性是什么? 有人认为,在代码中使用声明性字符串会使其更易于维护吗?
JSON或XML可能? DTD或XSD也可以很好地描述数据结构。 – codymanix 2010-08-09 11:26:23
所以,不是一个复杂的正则表达式需要一整行,而是需要一整个页面:) – 2010-08-09 11:47:55
知道正则表达式的人对它感到满意,但对其他人来说,它看起来像字母表扔了。这可能是一个问题,但我不确定。毕竟,对于那些编程的人而言,你可以对编程语言说同样的话。 它可能是很好的与对象和函数instad字符串,但我不知道什么是最好的方式来实现的。 +1的创新都一样。 – psicopoo 2010-08-09 11:49:52