הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה | להוריד \n פעם אחת בכל רצף (https://hosts.co.il/forums/showthread.php?t=91224)

Haimz 03-08-11 12:38

שאלה | להוריד \n פעם אחת בכל רצף
 
אוקי
אני עובד על משהו
ובעריכה זה מוסיף לי סתם ככה \n
עכשיו יוצר מצב כזה

\n
\n
\n
\n
אני צריך להוריד רק אחד בכל רצף כזה
אבל בתנאי שיש יותר מאחד כאלה באותו הרצף
זאת אומרת:

שאם יש לי:

ציטוט:

שלום
\n
אהלן
\n
\n
\n
שלום שלום
\n
\n
\n
\n
הי !
יחליף ל:
ציטוט:

שלום
\n
אהלן
\n
\n
שלום שלום
\n
\n
\n
הי !
לא אכפת לי איך הקוד יהיה, לולאה או REGEX או דבר אחר
העיקר שיפעל, תודה רבה :)

IgalSt 03-08-11 13:26

אם אתה רוצה ללכת על לולאה, אתה יכול לרוץ על הסטרינג ולחפש \n\n (ז"א פעמיים) וכל אחד מהם להחליף ב- \n (ז"א פעם אחת).
לא בדיוק יעיל, אבל זה פתרון זריז.

Erez | TrustMedia.co.il 03-08-11 14:12

ציטוט:

נכתב במקור על ידי IgalSt (פרסם 813322)
אם אתה רוצה ללכת על לולאה, אתה יכול לרוץ על הסטרינג ולחפש \n\n (ז"א פעמיים) וכל אחד מהם להחליף ב- \n (ז"א פעם אחת).
לא בדיוק יעיל, אבל זה פתרון זריז.

זה יחצה לו את מספר ה\n ולא יוריד רק אחד.
פיתרון אפשרי הוא לעשות לולאה מ10 עד 2, ולעשות סטרינג מורכב מ-i פעמים \n ולהחליף אותו ב(i-1) פעמים של \b (כי אם תחליף בn אז בריצה הבאה של הלולאה זה יוריד עוד אחד). ואז ככה זה יוריד אחד בכל דבר. ואז בסוף תחליף את ה\b ב-\n.
אם אתה רוצה ביטוי רגולרי אז זה משהו כזה (לא בדקתי):
PHP קוד:

preg_replace('/([\\n]{1,})[\\n](\w)/','$1$2',$text); 

בעיקרון זה מאתר מחרוזת שיש בא פעם אחת או יותר \n ולאחריה עוד פעם \n ואז טקסט, ומסיר את ה\n האחרון.

BlueNosE 03-08-11 14:55

Regex (בדקתי):
PHP קוד:

$text preg_replace("~(\\n+)\\n~","\\1",$text); 


Haimz 03-08-11 17:37

תודה רבה לכם :)
זה עובד
דרך אגב יש לכם מאיפה ללמוד REGEX ? כי זה לא ממש התחום החזק שלי, אני יודע את הבסיס

BlueNosE 03-08-11 18:37

לי אישית לקח המון המון זמן עד שנהייתי בזה טוב. קראתי מ:
http://php.eitan.ac.il/main.php?id=00171

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

Haimz 03-08-11 18:45

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 813361)
לי אישית לקח המון המון זמן עד שנהייתי בזה טוב. קראתי מ:
http://php.eitan.ac.il/main.php?id=00171

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

תודה עומר
תנעל :)

Erez | TrustMedia.co.il 03-08-11 19:19

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 813361)
לי אישית לקח המון המון זמן עד שנהייתי בזה טוב. קראתי מ:
http://php.eitan.ac.il/main.php?id=00171

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

גם אני למדתי משם, וגם אני לא הבנתי בהתחלה, אבל אחרי שתתנסה בזה ותבין את העיקרון של זה, זה ילך לך הרבה יותר חלק


כל הזמנים הם GMT +2. הזמן כעת הוא 12:57.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ