C++:
מחיקת תווים התואמים לתבנית
איך לעשות:
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string text = "abc123! XYZ89?";
std::regex pattern("[^a-zA-Z ]"); // הגדרת תבנית לכל דבר שאינו אות אנגלית גדולה או קטנה או רווח
std::string cleanText = std::regex_replace(text, pattern, "");
std::cout << cleanText << std::endl; // פלט: abc XYZ
return 0;
}
תוצאת הקוד: המחרוזת “abc123! XYZ89?” הפכה ל"abc XYZ" - התווים שלא התאימו לתבנית נמחקו.
הצצה לעמוק:
המינוח “הבעות רגולריות” (Regular Expressions) מתייחס לשפת תיאור תבניות ששמה לתכנתים כלי חזק לסינון טקסטים מידע מורכב. השפה נוצרה בשנות ה-50 על ידי סטיבן קליני והשתכללה במרוצת השנים. חלופות כוללות מניפולציית מחרוזות בסיסית יותר, כגון שימוש בפונקציות find
ו-erase
, אבל הבעות רגולריות מספקות גמישות רבה ויעילות בפעולות מורכבות יותר. עם זאת, שימוש לא זהיר בהבעות רגולריות עלול להוביל לביצועים גרועים או קוד מבלבל.