Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:将字符串转换为正则表达式_Python_Regex_String - Fatal编程技术网

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

我正在使用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 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
而不匹配其他字符串。