Python 找到一个正则表达式,其中包括数字、点,可能还有一个字母和减号
我有一个txt文件,其中包含以下行: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
<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