איך להשתמש בו
- הקלידו ביטוי רגולרי בשדה Pattern, ללא הלוכסנים שמסביב.
- סמנו את הדגלים שאתם צריכים. g (גלובלי) מוצא את כל ההתאמות במקום רק את הראשונה.
- הדביקו את הטקסט לחיפוש. ההתאמות מודגשות, וכל אחת מופיעה עם האינדקס וקבוצות הלכידה שלה.
- אפשר להזין טקסט החלפה, למשל $2-$1, כדי לראות תצוגה מקדימה של התוצאה של String.replace.
איך זה עובד
הבודק מריץ את התבנית עם אובייקט RegExp המובנה של הדפדפן, כך שהתוצאות הן בדיוק מה שקוד JavaScript (ECMAScript) באותו דפדפן היה מפיק. שפות אחרות משתמשות בניבי regex שונים: PCRE (PHP), מודול ה-re של Python, Java ו-.NET תומכים בתכונות ש-JavaScript חסר, כגון quantifiers רכושניים (a++), קבוצות אטומיות ((?>…)), מתגים פנימיים כמו (?i) ורקורסיה, והן נבדלות בפרטים כמו העוגנים \A ו-\Z. בדקו תבנית בשפה שלה לפני שמסתמכים עליה שם. Lookbehind ((?<=…)), קבוצות עם שם ((?<name>…)) ו-Unicode property escapes (\p{L} עם הדגל u) עובדים בכל הדפדפנים הנוכחיים.
ללא הדגל g או y רק ההתאמה הראשונה נמצאת, כמו עם RegExp.exec. התאמות באורך אפס, למשל של ^ או \b, מוצגות ברשימה אך אינן מודגשות; אחרי אחת כזו החיפוש מתקדם בתו אחד (נקודת קוד אחת עם הדגל u), כפי שעושה String.matchAll. קבוצות לכידה מוצגות לפי מספר ולפי שם היכן שהוגדר; קבוצה שלא השתתפה בהתאמה מסומנת כחסרת ערך, וזה שונה מהתאמה ריקה.
חלק מהתבניות, כמו (a+)+$ על שורה ארוכה ללא התאמה, לוקחות זמן מעריכי כדי להיכשל (catastrophic backtracking). כדי להקטין את הסיכון, ההתאמה מתחילה רגע אחרי שמפסיקים להקליד, רק 100,000 התווים הראשונים של הטקסט נסרקים, ולכל היותר 1,000 התאמות נאספות. תבנית פתולוגית עדיין עלולה לגרום ללשונית לא להגיב לזמן מה; אם זה קורה, פשטו את התבנית או קצרו את הטקסט.
דוגמאות
חילוץ תאריכים
התבנית (\d{4})-(\d{2})-(\d{2}) עם הדגל g על “Due 2026-03-15, paid 2026-04-02” מוצאת שתי התאמות. קבוצה 1 היא השנה; ההחלפה $3.$2.$1 הופכת את הטקסט ל-“Due 15.03.2026, paid 02.04.2026”.
קבוצות עם שם לקוד קריא יותר
(?<key>\w+)=(?<value>[^&]*) על מחרוזת השאילתה a=1&b=two מציגה key ו-value לכל זוג, וזה תואם למה שמחזירים match.groups.key ו-match.groups.value ב-JavaScript.
חיפוש לא תלוי רישיות בין שורות
^error:.* עם הדגלים g, i ו-m מתאים לכל שורה ביומן שמתחילה ב-Error:, ERROR: או error:, כי m גורם ל-^ להתאים בתחילת כל שורה.
שאלות נפוצות
האם ה-regex שלי יעבוד אותו דבר ב-Python, PHP או Java?
לא בהכרח. הכלי הזה משתמש במנוע JavaScript. התחביר הבסיסי משותף, אבל תכונות כמו מכמתים רכושניים, קבוצות אטומיות, דגלים מוטבעים כמו (?i), וחלק מרצפי ה-escape קיימים רק בניבים אחרים, וחלקן מתנהגות קצת אחרת. כדאי תמיד לבדוק בשפת היעד.
למה נמצאה רק התאמה אחת?
הדגל g (גלובלי) כבוי. בלעדיו, JavaScript מחזיר רק את ההתאמה הראשונה. סמנו g כדי למצוא את כולן.
האם צריך להקליד את הלוכסנים סביב התבנית?
לא. הזינו רק את התבנית, למשל \d+ במקום /\d+/g, ובחרו דגלים באמצעות תיבות הסימון. הצורה המילולית של JavaScript מוצגת מתחת לתוצאות לצורך העתקה לקוד.
מדוע הדף הפך לאיטי עם התבנית שלי?
מכמתים מקוננים כמו (a+)+ או (.*)* עלולים לאלץ את המנוע לנסות מספר אקספוננציאלי של מסלולים כשאין התאמה. הפכו את התבנית למדויקת יותר, למשל על ידי החלפת .* ב-[^,]*, או השתמשו בעוגנים. הבודק מגביל את הטקסט ל-100,000 תווים כדי לצמצם את ההשפעה.
פרטיות
התבנית והטקסט שלכם מעובדים רק בדפדפן שלכם על ידי מנוע ה-JavaScript. שום דבר לא מועלה, לא נשמר ולא נכלל בניתוחי אנליטיקה.