我有这根绳子
string = "DLR1=A,B,C,D,E,F,G|DLR2=A,B,C,D,E,F,G|DLR=A,B,C,D,E,F,G|"
我想找到 DLR、DLR1 和 DLR2 的索引。
但是,当我使用 Python find() 函数时,我没有像我预期的那样获得 3 个不同的索引。
据我了解,该函数查找第一次出现的子字符串(DLR、DLR1、DLR2)并返回索引。
如果这是真的,我不明白为什么 DLR 和 DLR1 具有相同的起始索引,但 DLR2 具有不同的起始索引。
我尝试过的事情
运行此代码时:
string = "DLR1=A,B,C,D,E,F,G|DLR2=A,B,C,D,E,F,G|DLR=A,B,C,D,E,F,G|"
print(string.find('DLR'))
print(string.find('DLR1'))
print(string.find('DLR2'))
输出:
0
0
19
我发现这输出了预期的结果:
print(string.find('DLR='))
print(string.find('DLR1='))
print(string.find('DLR2='))
输出:
38
0
19
我的问题是为什么会发生这种情况以及这是预期的吗?
DLR
位于索引 0(因为它是 DLR1
的子串)
DLR1
也位于索引0
DLR2
位于索引 19
DLR=
位于索引 38
DLR1=
位于索引 0
DLR2=
位于索引 19
因为“DLR”是“DLR1”的子字符串。在这种情况下,DLR1 是第一次出现,因此查找操作将为“DLR1”和“DLR”返回 0。 “DLR”在本文中出现了 3 次!
您应该尝试找到以下字符串:“DLR =”,“DLR1 =”,“DLR2 =”,它应该可以工作!