python:将字符串转换为正则表达式
我正在使用python进行一些文本比较。文本格式类似于python:将字符串转换为正则表达式,python,regex,string,Python,Regex,String,我正在使用python进行一些文本比较。文本格式类似于44=100比方说,我有两个文本,44=100和44=3001。我调用=左边的字符串是tag,右边是value现在我需要比较它们的标记和值。标记必须相同,44等于44,但只要格式相同,值就不必相同。即100和3001的格式相同(正常数字)。但是44=1.0E+7中的1.0E+7是不同的t重点在于价值比较。例如,我编写了一个脚本comp.py,当我运行comp.py200030010时,我将得到输出true;当我运行comp.py100000
44=100
比方说,我有两个文本,
44=100
和44=3001
。我调用=
左边的字符串是tag,右边是value现在我需要比较它们的标记和值。标记必须相同,
44
等于44
,但只要格式相同,值就不必相同。即100
和3001
的格式相同(正常数字)。但是44=1.0E+7
中的1.0E+7
是不同的t重点在于价值比较。例如,我编写了一个脚本comp.py,当我运行
comp.py200030010
时,我将得到输出true
;当我运行comp.py100000 1.0E+8时,输出为false
。我怎么做?我正在考虑将该值转换为正则表达式,并将其与其他值进行比较
伪代码:
rex1 = '100000'.getRegrex(), rex2 = '1.0E+8'.getRegrex(), rex1.compare(rex2)
这是可行的方法吗?有什么建议吗
rex1='100000'.getRegrex(),rex2='1.0E+8'.getRegrex(),rex1.compare(rex2)
你的方法是错误的。从给定字符串“推断”regexp不仅困难而且不合逻辑。你要做的是:
- 定义你的类型。对于每种类型,都会有相应的regexp
- 将输入文本与所有定义的类型进行比较,并检查其类型
- 比较这两种类型
实际上,您的rex1='100000'想法是可以实现的
rex1 = re.compile('10000')
但正如Thustmaster所指出的,您可能希望通过对数据模式的更多抽象来定义正则表达式 你的解释很模糊,你能列出输入和想要的输出吗?很抱歉我的要求。重点在于价值比较。例如,我编写了一个脚本comp.py,当我运行comp.py200030010时,我将得到输出“true”;当我运行comp.py100000 1.0E+8时,输出为“false”。我们能做到吗?posudo代码:rex1='100000'.getRegrex(),rex2='1.0E+8'.getRegrex(),rex1.compare(rex2)hi-Master。我们不能从任何给定的字符串生成正则表达式吗?如果必须预定义,那么我可能需要为所有标记创建一个字典…@user462872:是的,这就是我的意思。您需要为regexp创建一个dict。谢谢您,StruthMaster。这无助于解决所述问题;10000
的正则表达式将只匹配10000
而不匹配其他字符串。