在字符串中查找给定数字的索引,并避免python中数字中的数字



我正试图在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)

最新更新