الموقع النهائي التلقي: لماذا هو End_index + 1؟
-
11-09-2019 - |
سؤال
بيثون / ننبذ
عندما أستخدم طريقة الاستيلاء، فإنه يعطي موقع البداية والنهاية من الرمز المميز المتطابق، في النص.
على سبيل المثال
line = "cat bat"
pat = Word(alphas)
for i in pat.scanString(line):
print i
أحصل على ما يلي:
((['cat'], {}), 0, 3)
((['bat'], {}), 4, 7)
ولكن يجب أن يكون موقع نهاية القط "2"؟ لماذا تقارير الموقع التالي كمواقع النهاية؟
المحلول
هذا متسق مع بيثون [begin:end]
اتفاقيات التقشير، حيث "النهاية" هي فهرس الحرف التالي. من خلال وضع النهاية كموقع التالي، فمن الواضح جدا لاستخراج السلاحيات المتطابقة باستخدام القيم المرتجعة:
for t,start,end in pat.scanString(line):
print line[start:end]
يمكنك أن ترى كيف يتم استخدام هذا إذا نظرت إلى البرمجية المصدر البخارية لتنفيذ transformString
.
لا تنتمي إلى StackOverflow