استخراج قيم الفاصلة العائمة من السلاسل ذات التعبيرات العادية
خذ بعين الاعتبار مهمة استخراج قيمة مزدوجة من سلسلة. لتحقيق ذلك باستخدام تعبير عادي، يتم اتباع الخطوات التالية:
إنشاء التعبير العادي:
import re
pattr = re.compile(???)
x = pattr.match("4.5")
استخدام التعبيرات العادية المتوافقة مع Perl:
تعبير عادي مناسب من وثائق Perl لاستخراج الفاصلة العائمة القيم هي:
re_float = re.compile("""(?x)
^
[ -]?\ * # an optional sign and space
( # integers or f.p. mantissas
\d # start with a ...
( # ? takes care of integers
\.\d* # mantissa a.b or a.
)?
|\.\d # mantissa .b
)
([eE][ -]?\d )? # optionally match an exponent
$""")
البحث عن التطابقات واسترجاعها:
لاستخراج القيمة المزدوجة، قم بتطبيق التعبير العادي المترجم على السلسلة المطلوبة:
m = re_float.match("4.5")
print(m.group(0))
سينتج عن ذلك:
4.5
استخراج قيم متعددة من سلسلة:
لاستخراج قيم فاصلة عائمة متعددة من سلسلة أكبر، استخدم طريقة findall():
s = """4.5 abc -4.5 abc - 4.5 abc .1e10 abc . abc 1.01e-2 abc
1.01e-.2 abc 123 abc .123"""
print(re.findall(r"[ -]? *(?:\d (?:\.\d*)?|\.\d )(?:[eE][ -]?\d )?", s))
سيؤدي ذلك إلى إرجاع قائمة بالقيم المستخرجة، بما في ذلك:['4.5', '-4.5', '- 4.5', '.1e10', '1.01e- 2', '1.01', '-.2', '123', '.123']['4.5', '-4.5', '- 4.5', ' .1e10', ' 1.01e-2', ' 1.01', '-.2', ' 123', ' .123']
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3