【发布时间】:2021-01-15 22:30:48
【问题描述】:
我有兴趣提取出现在一组字符之后的数字 ('AA=')。但是,问题是:(i)我不知道数字有多长,(ii)我不知道数字后面出现的内容(可能是空格或除 0-9 之外的任何字符,请考虑我不知道这些字符可能是什么,但它们绝对不是 0-9),(iii)数字可以以指数形式出现(下面的第 4/5 行)
以下是我可以拥有的众多输入中的几个。
Line 1: 123 NUBA AA=1.2345 $BB=1234.55
Line 2: 123 NUBA MM AA=1.2345678&BB=1234.55
Line 3: 123 NUBA RRNJH AA=1.2#ALPHA
Line 4: 123 NUBA ABCD AA=1.2E-5 GBRO
Line 5: 123 NUBA ABCD AA=1.245E-7$ MN
...
结果应该是:1.23451.23456781.21.2e-51.245e-7 对应上面的每一行。
PS:我知道如何使用.find 并获取AA= 的起始位置,但这对上述情况帮助不大。另外,我知道一种方法是在 AA= 之后循环遍历每个字符,如果看到空格或除 [0-9,.,E,-] 以外的任何内容,则中断,但这很笨拙,并且在我的代码中占用了不必要的空间。我正在寻找一种更简洁的方法。
【问题讨论】:
-
简洁的方法是使用正则表达式,这就是他们发明的目的。从
remodule 开始。 -
@MarkRansom:谢谢,你能分享一个简单的相关例子吗?
标签: python string character numeric