الموقع النهائي التلقي: لماذا هو End_index + 1؟

StackOverflow https://stackoverflow.com/questions/1834456

  •  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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top