עזרה בREGEX
-
@dovid אמר בRegex - ביטויים רגולריים:
הערה, יש מושג כימות עצלן: כל מצייני הכמות מנסים תמיד למצוא את המקסימום. למשל אם נחפש אלמנט HTML שזה בעצם טקסט מוקף זויות, אנו עשויים לחפש "<.+>" - משמעות: סוגריים זויתיות שביניהם 1 או יותר של תו כל שהוא. כעת אם יש כמה זוגות של כאלה בטקסט במקום למצוא כל אחד לעצמו הוא יתפוס מהראשון עד האחרון ברציפות! הנה דוגמה. זה התנהגות הברירת מחדל שנקראת חמדנית. ההיפך של זה נקרא התנהגות עצלנית והיא מושגת ע"י הוספת סימן שאלה אחרי מציין הכמות - הכוכבית או הפלוס, הנה דוגמא עובדת. המשמעות היא להעדיף את ההתאמה המינימלית.
כלומר ככה יעבוד:
<a .*?>.*?<\/a>
יש לציין שבPHP יש דגל של U לרג'קס, שמשמעותו Ungreedy - לא חמדן, אלא עצלן.
ואז אפשר להשתמש עם כוכבית לבד.אגב לטעמי הפתרון של @yossiz מצויין.
-
<a(.+?href="http).+?>.+?<\/a>
-
מעניין למה האתר הוריד לי את הסלש?
<a(.+?href="http).+?>.+?</a> -
@שואף אמר בעזרה בREGEX:
@yossiz אמר בעזרה בREGEX:
[^>]
אתה גאון!! לא חשבתי על זה.
אבל זה לא פיתרון נקי.. זה בעל'בתיש, אין צורה לכתוב את זה שלא יעשה את הבעייה?זה גם מה שאני עשיתי בעבר, וזה הדבר היחיד שעזר לי בזמנו (אז הייתי צריך לחפש את ה-,'href' של הלינקים)