regex עם ביטוי לא מחייב
-
שלום וברכה
אני צריך תוצרה של הביטוי הזה/__collection_(\d+)_(\d+)/
למחרוזות כמו אלו
"__collection_12" / __"collection_12_2"
שים לב שהקבוצה השנייה - החל מהמקף התחתון - לא מחייבת שתהייה
שייך? -
מצאתי! (למה תמיד אחרי חיפוש מייגע אני מוצא את התשובה רק אחרי שכבר שאלתי?)
"סימן שאלה" גורם לחלק שקודם לו להיות אופציונליככה
/__collection_(\d+)_?(\d+)?/
-
@ש-ב-ח הדבר מכונה Optional Item
בנוסף ניתן לחסוך את השימוש החוזר באופרטור ע"י שימוש בNon-capturing Group__collection_(\d+)(?:_(\d+))?
-
@רפאל אמר בregex עם ביטוי לא מחייב:
@ש-ב-ח אתה מרוויח שהקו התחתון וקבוצת המספרים שבאה אחריו מאוגדים לאיבר אחד, בניגוד לשימוש כפול בOptional item בו ערך שיסתיים בקו תחתון יתאים גם ללא ספרות הבאות אחריו.
לא הצלחתי להבין
גם מה שאתה עשית וגם מה שאני עשיתי מביא את אותה תוצאה בקבוצות (בין עם זה נגמר בקו תחתון ללא ספרות ובין אם זה נגמר בספרות הראשונות בלבד ובין עם יש עוד ספרות אחרי הקו השני)
10/12