我正试图在python中获取字符串中给定数字的第一个匹配索引。
如果我们有这样的例子
number = '0.0'
string = '20.0 Rs0.0'
我们做
string.find(number)
我期望的答案是7,这是0.0的起始索引,不包含在另一个数字中。但很明显,这里的答案是1,这与20.0中的0.0相匹配。
有没有一个使用regex/python中任何其他方法的解决方案可以做到这一点?
任何帮助都将不胜感激。谢谢
使用Regex。
例如:
import re
number = '0.0'
string = '20.0 0.0'
print(re.search(fr"b{re.escape(number)}b", string).span())
# --> (5, 8)
import re
a_list = ['20.0 0.0', '20.0 Rs0.0', '20.0 Rs0.02', '0.0', '0.02']
r = re.compile(fr'b0.0b|(?<=D)0.0(?=D|$)')
result = []
for n, i in enumerate(a_list):
if (found := (r.search(i))):
result.append((n, found.span()))
#[(0, (5, 8)), (1, (7, 10)), (3, (0, 3))]
print(result)