זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/python/lessons/regexp-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)