קורס Python שיעור ביטויים רגולריים ופייתון


זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/python/lessons/regexp-python

לא הבנתי , למה כאשר משתמשים בחיפוש ביטויים רגולריים כמו בסרטון של קוד וערך - למה התשובה חילקה לי את המילים לשני חלקים של group … הרי זה ביטוי רגולרי אחד … מה גרם לפצל את זה ?
מה גם שבהמשך הסרטון כאשר רצינו לעשות אות גדולה בכל מילה דרך הפונקציה sub , אז שם זה התייחס רק לאות הראשונה של המילה ? ולא הפך את כל המילה לאותיות גדולות ?

לא הבנתי את השאלה- תוכל לצרף כאן דוגמת קוד שלא היתה ברורה והתיחסות לשורה ספציפית בה?
(כל הדוגמאות מהסרטון זמינות בטאב ״טקסט״)

import re

def first_letter_eq_last(text):
    res = re.search(r'^\W*(\w).*(\w)\W*$', text)
    if res is not None:
        re    turn res.group(1) == res.group(2)

    text1 = 'hello world h     '
text2 = 'hello world h'

print first_letter_eq_last(text1)
print first_letter_eq_last(text2)

לא ברור בקטע של הgroup  איך הוא פיצל את המילים
import re

text = 'dust in the wind'

print re.sub(r'\b\w',
        lambda m: m.group(0).upper()
        , text)

ופה משום מה - ה- group   מתייחסת רק לאות הראשונה ולא לכל המילה ?

כשאני פותר את התרגילים אני רואה באמת שה- GROUP מתייחס לכל הביטוי ולא אוטמטית מפצל זאת - ואז אני צריך לעשות split

הי,

פיצול המילים ב group קרה לפי הסוגריים: הקבוצה הראשונה מתאימה לאות ש״נתפסה״ בסוגריים הראשונים והקבוצה שניה לאות שנתפסה בסוגריים השניים.

הנה איור להמחשה:
https://regex101.com/r/fGt2kl/1

ועוד- הפקודה:

group(0)

באמת מחזירה את כל הביטוי. החלקים שנתפסים מזוהים לפי מספר הקבוצה. לדוגמא זאת הדרך לקחת את הטקסט שנתפס בסוגריים הראשונים:

group(1)