מחיקת תווים התואמים לתבנית

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, אבל הבעות רגולריות מספקות גמישות רבה ויעילות בפעולות מורכבות יותר. עם זאת, שימוש לא זהיר בהבעות רגולריות עלול להוביל לביצועים גרועים או קוד מבלבל.

ראה גם: