python:将字符串转换为正则表达式

时间:2012-08-01 05:14:26

标签: python regex string

我正在使用python进行一些文本比较。文本格式类似于44=100
假设我有2个文字44=10044=3001。我将=左侧的字符串称为标记,右侧是值。
现在我需要比较它们的标签和值。标记必须相同,44等于44,但值不必,只要其格式相同即可。即。 1003001格式相同(正常数字)。但1.0E+7中的44=1.0E+7不同。重点是价值比较。即。我编写了一个脚本comp.py,当我运行comp.py 2000 30010时,我会得到输出true;当我运行comp.py 100000 1.0E+8时,输出为false。我该怎么做?我正在考虑将值转换为正则表达式并将其与其他表达式进行比较。

伪代码:

rex1 = '100000'.getRegrex(), rex2 = '1.0E+8'.getRegrex(), rex1.compare(rex2) 

这是一种可行的方法吗?有什么建议吗?

2 个答案:

答案 0 :(得分:1)

  

rex1 ='100000'.getRegrex(),rex2 ='1.0E + 8'.getRegrex(),rex1.compare(rex2)

你的做法是错误的。从给定的字符串中“推断”正则表达式不仅困难而且不合逻辑。你要做的是:

  • 定义您的类型。对于每种类型,您都有相应的正则表达式。
  • 将输入文本与所有已定义的类型进行比较,并检查它的类型。
  • 比较两种类型。

答案 1 :(得分:1)

实际上,您对rex1 = '100000'.getRegrex()的想法可以完成

rex1 = re.compile('10000')

但正如Thrustmaster指出的那样,您可能希望使用更多数据模式的抽象来定义正则表达式。