26-08-2006, 12:41
|
|
|
חבר מתאריך: 30.06.06
הודעות: 185
|
|
ביטויים רגולרים - בעיה מוזרה בהתאמה
בפתרון שלי לאתגר שהיה פה, עשיתי (זה אולי קצת מעפן, אבל זה הדבר הראשון שחשבתי עליו.. אז פשוט עשיתי את זה) החלפה לכל התגים החוקיים, ואז התאמה למה שנשאר.
זה הביטוי שהחלפתי בהתחלה, בשביל להוריד תגים "חוקיים"
קוד:
!<([^/][^> ]*)[^>]*>(.*?)</\1>!s
כעשיתי עם זה נסיונות זה היה נראה בסדר, אבל עכשיו שמתי לב למשהו מוזר
כשאני עושה preg match all לביטוי
קוד:
!<([^/][^> ]*)[^>]*>(.*?)<(/\1)>!s
ומתאים את זה ל
<abc><a></a>
זה מתאים לכל המחרוזת... כשאני מסתכל על ה matches, אני מקבל
קוד:
Array
(
[0] => Array
(
[0] => <abc><a></a>
)
[1] => Array
(
[0] => a
)
[2] => Array
(
[0] => <a>
)
[3] => Array
(
[0] => /a
)
)
למה זה ככה?
ה
היה אמור להתאים למחרוזת הכי ארוכה שזה מוצא, abc, בגלל שזה חמדן, ואז לחפש </abc>, לא ?
במה טעיתי?
נערך לאחרונה ע"י eXeCuT3 בתאריך 26-08-2006 בשעה 12:58.
|