שיניתי קודים של תוסף שמותקן באתר וורדפרס.
כיון שיש עדכוני תוסף אלמנטור כל יום אז צריך שוב ושוב לעדכן את השינויים שלי (ובנוסף לנקות 'קש' ולקמפל את הקבצי CSS.
מה מומלץ לעשות בזה? תודה.
שיניתי קודים של תוסף שמותקן באתר וורדפרס.
כיון שיש עדכוני תוסף אלמנטור כל יום אז צריך שוב ושוב לעדכן את השינויים שלי (ובנוסף לנקות 'קש' ולקמפל את הקבצי CSS.
מה מומלץ לעשות בזה? תודה.
https://dbfiddle.uk/4VqV6WPi
לא מחזיר תוצאה בגלל מעבר השורה.
(אני אמור להכניס את \n היכן שהוא?)
תודה
יש לי עכשיו שגיאה נוספת.
הקוד
UPDATE phpbb_posts set post_text = REPLACE(
post_text,
REGEXP_SUBSTR(post_text, '\\<ALIGN align="(.*?)"(.*?)\\>(.*?)\\<\\/ALIGN\\>'),
REGEXP_REPLACE ( REGEXP_SUBSTR(post_text, '\\<ALIGN align="(.*?)"(.*?)\\>(.*?)\\<\\/ALIGN\\>'),'^\\<ALIGN align="(.*?)"(.*?)\\>(.*?)\\<\\/ALIGN\\>', '\\2')
)
השגיאה -
Warning: #1139 Regex error 'match limit exceeded'
(ג"כ רק בחלק מהרשומות).
תודה
@dovid כוונתך שאכתוב את הביטוי ככה?
"\\[align=right\\]((.)*?)\\[\\/align\\]"
@Elhanan כתב במגבלת זיכרון בפונקציית רג'קס בmysql:
@chagold אני לא חושב שיש קשר לגודל ההודעה, אני יותר חושב שהRegex שלך לא תקין.
לפי השגיאה, נראה שהרגקס מבצע יותר מידי פעולות, שחורגות מהמגבלה לרקורסיה (בSql המגבלה היא 100 כעיקרון).
רקורסיה פירושו כל פעם שפונקציה קוראת לעצמה, בדרך כלל עם קלט אחר שמועבר לפונקציית הילד. זה קורא לעצמו שוב ושוב עד שמגיעים למצב יציאה, ואז מעביר את התוצאות בחזרה לLIFO.
הבעיה העיקרית עם הרקורסיה היא שהיא יכולה להשתמש בקריאה לפונקציה מקוננת עבור כל אלמנט מעובד. זה מביא להרבה יותר צריכת משאבים, מכיוון שכל קריאת פונקציה צריכה קבוצה משלה של משתנים ופרמטרים מקומיים. וזה ייקח זמן עיבוד נוסף בהשוואה לללולאות.
בגדול אפשר לשנות את מגבלת הרקורסיה בSql באמצעות האפשרות MAXRECURSION, רק קח בחשבון שאתה חשוף ללולאה אין סופית שתצרוך משאבים גדולים מאוד.
ההנחת יסוד שלי היא שהתחביר של הרגקס לא תקין, ההמלצה שלי היא שתעלה אותו כאן לבדיקה, לפני שתשנה את מגבלת הרקורסיה.
א. יש רשומות שזה מחזיר תקין.
ב.
UPDATE phpbb_posts set post_text = REPLACE(
post_text,
REGEXP_SUBSTR(post_text, "\\[align=right\\](((?R)|.)*?)\\[\\/align\\]"),
CONCAT(
'[right]',
REGEXP_REPLACE ( REGEXP_SUBSTR(post_text, "\\[align=right\\](((?R)|.)*?)\\[\\/align\\]"),"^\\[align=right\\](((?R)|.)*?)\\[\\/align\\]", "\\2"),
'[/right]'
)
)
@yossiz כתב במגבלת זיכרון בפונקציית רג'קס בmysql:
@chagold אתה משתמש ב-mariadb? איזה גירסה?
10.5.17-MariaDB-cll-lve - MariaDB Server
אני מריץ קוד רג'קס על טבלת MYSQL. הרבה רשומות מחזירות את ההודעה דלהלן בגלל שההודעה גדולה מדי
Warning: #1139 Regex error 'recursion limit exceeded'
יש צורה להסתדר עם זה - אפילו ע"י העתקת המסד לשרת אחר עם יותר זיכרון, או זה תקרת זכוכית?
תודה
@Y-Excel-Access https://regex101.com/r/GGmlSd/1
@Y-Excel-Access
זה?
https://regex101.com/r/f31L7J/1
או שבכוונה שמת את השגיאה שהפסיק לא במקום. ואז אפשר לעשות שיחפש את הרווח או את הפסיק אבל השאלה לכמה אפשרויות אתה רוצה להתרחב. (עכ"פ זה לא כלול בשאלה המקורית של תחילת מילה, כי אם יש את הפסיק אז זה לא התחלה)
@Y-Excel-Access
בשביל תחילת הטקסט
https://regex101.com/r/dVqB9I/1
זה c# אבל אולי זה גם בvba. לא בדקתי.
המקור: https://tchumim.com/topic/1463/regex-ביטויים-רגולריים/4#:~:text=תחילת הטקסט ע"י סימן העגינה של תחילת הטקסט - ^. נכתוב ככה (^| )סוכה
@Y-Excel-Access באיזה פלטפורמה / שפה אתה עובד? אקסל? שפת תכנות?
למדפסת רשת שאין לה וויפי (ואני מעוניין לא לחבר אותו לראוטר ישירות), מחפש מוצר (כרטיס רשת) שיאפשר לו להתחבר לראוטר בוויפי
מחפש מכשיר שאפשר לשדר אליו סאונד מהמחשב ע"י וויפי (או מתחבר לראוטר ברשת), ויש לו יציאת אודיו (אוזניה).
@יוסף-בן-שמעון יש גם את זה וזה וזה, רק שאין להם מובנה את הצורה הברורה. אולי בפרימיום של חזון שמים יש, ואולי באחרים אפשר לבקש שיפתחו את זה.
לא יודע אם הועלתי.
@מורשת-מרן אולי שומר על עותק ולא על המקורי. תעתיק את התוכן לקובץ אחר ותנסה לעבוד עליו.