REGEX לקומות כשרות
-
תגובה: קומות כשרות
בזכות הקפצה של מישהו ראיתי את ההודעה הזו:@Y-Excel-Access כתב בקומות כשרות:
ביטוי רגולרי המוודא שהמספר כשר:
[0[0-9]80[0-9]|05[3[3|4]1|48[4|5]|041|27[1|6]|832|5[67|32]]][0-9][0-9][0-9][0-9][0-9]
(אשמח לתיקון אם טעיתי! - אני מגיב לנושא למרות שהוא ישן, כי חיפוש גוגל מעלה את התוצאה הזו כאפשרות הנכונה הראשונה, וחשוב שהמוצאים ידעו)אני חושב שזה לא כדאי לעשות REGEX לזה, כי זה מאוד לא קריא וקשה לתחזוקה.
אמנם יש מקרים שREGEX זה פתרון יחיד או כמעט יחיד, אז צריך לפני זה לבדוק את זה על מאגר מספרים ולראות שהתשובות כצפוי.
בלי לבדוק את הביטוי שהבאת (כי זה קשה!) שיפצתי קצת עם \d שזה במקום 0-9 וגם {} שזה מציין כמות חזרה:0([23489]8\d|5(041|27[16]|3[34]1|48[45]|532|567|832))\d{5}
אני מודע שגם את הביטוי הזה קשה מאוד לקרוא.
זה בדיוק החיסרון של REGEX מורכבים.
במידת האפשר ובשפות הנתמכות אני ממליץ להשתמש בקוד,
כעין מה שכתבתי פה
https://tchumim.com/post/112233
במידה ומדובר על הרבה מידע, אז זה גם רץ הרבה יותר מהר. -
תודה על השיפור.
לגבי הביטוי שכתבתי: זה היה טעות (היה צריך סוגריים עגולות), ותיקנתי ל - מכיל:
(0[0-9]80[0-9]|05(3(3|4)1|48(4|5)|041|27(1|6)|832|5(67|32)))[0-9][0-9][0-9][0-9]
לא היה שייך לי לוודא שזה פלאפון כשר על ידי קוד כי השימוש הוא עבור הגבלת תשובה של GOOGLE FORMS שאני עובד עליו.
באמת בשעת העריכה הייתי צריך להוסיף לי רווחים להבין מה אני כותב...
-
@dovid כתב בREGEX לקומות כשרות:
במידה ומדובר על הרבה מידע, אז זה גם רץ הרבה יותר מהר.
חידוש. אפשר מקור?
-
@שלום-עולם-0 כתב בREGEX לקומות כשרות:
@dovid כתב בREGEX לקומות כשרות:
במידה ומדובר על הרבה מידע, אז זה גם רץ הרבה יותר מהר.
חידוש. אפשר מקור?
זכור לי שהיה פעם ויכוח על הנושא כאן בפורום, אני לא מוצא כעת. זכור לי שאני ניצחתי עם הטענה שאם אתה משתמש ברגקס הרבה פעמים, מנוע V8 כבר מקמפל אותו לקוד יעיל מאוד
אפשר בהרבה שפות לקמפל רגקס לפני השימוש אם זה מיועד לשימוש רב פעמי, נראה לי שהקוד שיוצא יהיה בד"כ יותר יעיל מקוד שאתה תבשל בעצמך