字串中整數的倒數第二次出現
將“hEY3 a7yY5”視為我的字串,該字串中的最后一個整數是 5,倒數第二個整數是 7。
如何在此字串中找到最后第二個整數的索引?我不確定是否可以使用 rindex() ,如果可以,那么如何使用。
上面字串中 7的索引是 6。我無法繞開寫類似的東西stre.rindex(isnumeric())
uj5u.com熱心網友回復:
這將找到字串中數字序列的倒數第二次出現并列印其偏移量。
import re
a = "hEY3 a7yY5"
offsets = [m.start() for m in re.finditer(r'\d ', a)]
print(-1 if len(offsets) < 2 else offsets[-2])
如果你不喜歡重新,那么你可以這樣做:
offsets = []
for i, c in enumerate(a):
if c.isdigit():
if offsets:
if offsets[-1] != i - 1:
offsets.append(i)
else:
offsets = [i]
print(-1 if len(offsets) < 2 else offsets[-2])
輸出:
6
請注意,如果字串是“hEY7 a75yY5”,則會列印相同的結果 - 即,這也處理多于一位的序列
uj5u.com熱心網友回復:
使用模式獲取倒數第二個數字的索引的選項,并使用Match物件的 start() 方法:
s = "hEY3 a7yY5"
pattern = r"\d(?=[^\d\n]*\d[^\d\n]*\Z)"
m = re.search(pattern, s)
if m:
print(m.start())
輸出
6
模式匹配:
\d匹配單個數字(?=積極前瞻,斷言右邊是[^\d\n]*可選擇匹配除數字或換行符以外的任何字符\d匹配單個數字[^\d\n]*可選擇匹配除數字或換行符以外的任何字符\Z字串結束
)關閉前瞻
uj5u.com熱心網友回復:
你可以試試這樣的
a = "hEY3 a7yy5"
out = [i for i,j in enumerate(a) if j.isnumeric()][-2]
print(out)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/433673.html
上一篇:將回圈輸出整數作為字串連接?
下一篇:將字串值一個gui傳遞給另一個
