Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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_Xml_Xml Parsing - Fatal编程技术网

Python 找到一个正则表达式,其中包括数字、点,可能还有一个字母和减号

Python 找到一个正则表达式,其中包括数字、点,可能还有一个字母和减号,python,regex,xml,xml-parsing,Python,Regex,Xml,Xml Parsing,我有一个txt文件,其中包含以下行: <KEY key="Metric" keyvalue="VALUE (Base)">523.876481542546</KEY> <KEY key="Metric" keyvalue="VALUE (Base)">1.41186111749407E-05</KEY> 这将提供以下输出: m1 = 523.876481542546 m2 = 1.41186111749407 但我想: m2 = 1.4

我有一个txt文件,其中包含以下行:

  <KEY key="Metric" keyvalue="VALUE (Base)">523.876481542546</KEY>
  <KEY key="Metric" keyvalue="VALUE (Base)">1.41186111749407E-05</KEY>
这将提供以下输出:

m1 = 523.876481542546
m2 = 1.41186111749407
但我想:

m2 = 1.41186111749407E-05

我需要什么正则表达式来处理带有“E”和减号“-”的情况?

这将得到标签中所有以数字开头并带有小数的内容

import re
REGEX = re.compile("^<.*?>(\d*\..*)<.*?>$")
重新导入
REGEX=re.compile(“^(\d*\..*)$”)
如果你的数字没有小数,那就去做吧

import re
REGEX = re.compile("^<.*?>(\d*|\d*\..*)<.*?>$")
重新导入
REGEX=re.compile(“^(\d*\124;\ d*\..*)$”)

这将获取标签中所有以数字开头并带有小数的内容

import re
REGEX = re.compile("^<.*?>(\d*\..*)<.*?>$")
重新导入
REGEX=re.compile(“^(\d*\..*)$”)
如果你的数字没有小数,那就去做吧

import re
REGEX = re.compile("^<.*?>(\d*|\d*\..*)<.*?>$")
重新导入
REGEX=re.compile(“^(\d*\124;\ d*\..*)$”)
为什么不为XML数据使用XML解析器呢。例如,从Python标准库:

$ cat input.xml
<KEYS>
  <KEY key="Metric" keyvalue="VALUE (Base)">523.876481542546</KEY>
  <KEY key="Metric" keyvalue="VALUE (Base)">1.41186111749407E-05</KEY>
</KEYS>

>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse("input.xml")
>>> [key.text for key in tree.findall("KEY")]
['523.876481542546', '1.41186111749407E-05']
$cat input.xml
523.876481542546
1.41186111749407E-05
>>>将xml.etree.ElementTree作为ET导入
>>>tree=ET.parse(“input.xml”)
>>>[key.text用于树中的key.findall(“key”)]
['523.876481542546','1.41186111749407E-05']
为什么不为XML数据使用XML解析器呢。例如,从Python标准库:

$ cat input.xml
<KEYS>
  <KEY key="Metric" keyvalue="VALUE (Base)">523.876481542546</KEY>
  <KEY key="Metric" keyvalue="VALUE (Base)">1.41186111749407E-05</KEY>
</KEYS>

>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse("input.xml")
>>> [key.text for key in tree.findall("KEY")]
['523.876481542546', '1.41186111749407E-05']
$cat input.xml
523.876481542546
1.41186111749407E-05
>>>将xml.etree.ElementTree作为ET导入
>>>tree=ET.parse(“input.xml”)
>>>[key.text用于树中的key.findall(“key”)]
['523.876481542546','1.41186111749407E-05']

我想如果您使用re字符串

re.search("\d+\.*\d*[E]*[-]*\d*",line)
对于有小数的数字和没有小数的数字都应该这样


您总是可以使用像这样的正则表达式测试仪来测试正则表达式:

我想如果您使用re字符串

re.search("\d+\.*\d*[E]*[-]*\d*",line)
对于有小数的数字和没有小数的数字都应该这样


您总是可以使用这样的正则表达式测试仪测试正则表达式:

看起来您有一个XML文件。您考虑过lxml或elementtree(std-lib)吗?@WayneWerner看起来您有一个XML文件。您是否考虑过lxml或elementtree(标准库)?@WayneWerner