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

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

איך לעשות:

הנה דוגמה למחיקת תווים באמצעות RegExp ב-Clojure:

(re-seq #"[^\d]" "abc123!")  ; שומר רק על המספרים
;; => ("a" "b" "c" "!")

אולי תרצו גם להסיר רווחים, נקודות או תווים מיוחדים:

(clojure.string/replace "Hello, World! 123." #"[^\w\s]" "")
;; => "Hello World 123"

מחקת אותיות מיוחדות כמו סימני פיסוק, נקודות ופסיקים:

(clojure.string/replace "This is a test. Do not panic!" #"[.,!]" "")
;; => "This is a test Do not panic"

עיון מעמיק

מחיקת תווים שתואמים לדפוס היא רעיון ישן כמעט כמו התכנות עצמו. מבוסס על ביטויים רגולריים (Regular Expressions), שהיו חלק מהפקד של כלי UNIX מהשנות ה-70, כמו sed או grep. ב-Clojure משתמשים בביטויים רגולריים כדי לעבוד עם טקסט בצורה חזקה וגמישה. ניתן להפעיל שינויים על מחרוזות בכמה שורות פשוטות של קוד.

אלטרנטיבות לביטויים רגולריים כוללות פונקציות מחרוזת מובנות, כמו .indexOf, .substring או .split, אבל אלה לא תמיד יעילות כמו ביטוי רגולרי מורכב.

לגבי פרטי היישום, ב-Clojure, clojure.string/replace היא הפונקציה הנפוצה למחיקת תווים. היא מקבלת מחרוזת, פטרן (ביטוי רגולרי) והחלפה (שיכולה להיות מחרוזת ריקה כדי למחוק).

ראו גם