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

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

Derey22 28-07-08 20:45

php ביטוי רגולרי
 
יש לי דוגמא את הסטרינג הזה:
PHP קוד:

()1()aaa()2() 

אני רוצה שהביטוי ימחוק את מה שיש בין() ל()
הבעיה:הביטוי מוחק הכל,ולא משאיר לי את הaaa בגלל שהביטוי מסתכל על ה() הראשון של המחרוזת ועד לסוף המחרוזת.

לבסוף ניסתי לעבוד עם }{ אבל לא הצלחתי.


תודה.

Jerba 28-07-08 20:46

שעה אני מנסה להבין מה לעזאזל אתה מנסה למחוק ומה להשאיר..חח תן דוגמא מפורטת מה אמור להישאר אחרי ההשמטה

Gal Shafrir 28-07-08 20:52

תנסה משהו כזה:
PHP קוד:

preg_replace("/\(\)([0-9]+)\(\)/","",$string); 


Derey22 28-07-08 21:00

לא עובד.
ואחרי ההשמטה אני צריך שישאר רק הaaa.|Rolleyes||Rolleyes||Rolleyes|

Elad-A 28-07-08 21:00

לא עולה לי כרגע ביטוי רגולרי שיכול לעזור לך אבל תמיד אתה יכול להשתמש ב preg_match_all

Derey22 28-07-08 21:08

אוקיי תודה אלעד,אם יש עוד אפשרויות/דרכים,אתם מוזמנים להציע.

DvirCohen 28-07-08 22:21

המבנה של המחרוזת תמיד יהיה ()טקסט()טקסט()טקסט()?

אם כן אתה יכול לעשות דבר כזה
PHP קוד:

$text preg_replace"#\(\).+?\(\)(.+?)\(\).+?\(\)#""\\1"$text ); 

עריכה
שאני חושב על זה, לא כ"כ הבנתי מה אתה רוצה.
מצד אחד אתה אומר שאתה רוצה שזה ימחוק לך כל מה שבין () ל(), מצד שני אתה אומר שאתה רוצה שישאר לך הaaa..אתה נוגד את עצמך אני לא מבין מה אתה רוצה \:


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

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