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

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

איך לעשות:

$text = "שלום! האם למחוק את הסימנים המיוחדים #@$?";
$pattern = '/[#!@$%&*()]/'; // דפוס למחיקה
$clean_text = preg_replace($pattern, '', $text);
echo $clean_text; // תוצאה: "שלום האם למחוק את הסימנים המיוחדים "

אפשר גם למחוק תווים בתחומים של ASCII:

$text = "Numbers 123, symbols @#₪!, and English abCD";
$pattern = '/[^א-ת ]/'; // [^א-ת ] מתאים לכל דבר שלא תווים בעברית ורווחים
$hebrew_text = preg_replace($pattern, '', $text);
echo $hebrew_text; // תוצאה: " ו"

עיון מעמיק

preg_replace מבוססת על ביטויים רגולריים, טכנולוגיה שחלק מהיסודות שלה החלו בשנות ה-50. אלטרנטיבות פשוטות יותר כמו str_replace מתאימות למחיקת תווים ספציפיים, אבל לא לתבניות. יש להתייחס לביטויים רגולריים בזהירות כי שגיאה קטנה יכולה לגרום לתוצאות בלתי צפויות או אפילו לתקלות ביצוע.

ראה גם