Προσπαθώ να δημιουργήσω μια εφαρμογή που να ταιριάζει ένα πρότυπο μηνύματος με ένα μήνυμα που προσπαθεί να στείλει ένας χρήστης. Χρησιμοποιώ Java regex για την αντιστοίχιση του μηνύματος. Το πρότυπο/μήνυμα μπορεί να περιέχει ειδικούς χαρακτήρες.
Πώς θα μπορούσα να πάρω τον πλήρη κατάλογο των ειδικών χαρακτήρων που πρέπει να διαφυγούν προκειμένου η regex μου να λειτουργήσει και να ταιριάζει στις μέγιστες δυνατές περιπτώσεις;
Υπάρχει μια καθολική λύση για την αποφυγή όλων των ειδικών χαρακτήρων σε Java regex;
Μπορείτε να δείτε το javadoc της κλάσης Pattern: http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
Θα πρέπει να αποφύγετε οποιοδήποτε char που αναφέρεται εκεί, αν θέλετε το κανονικό char και όχι την ειδική σημασία.
Ως μια ίσως απλούστερη λύση, μπορείτε να τοποθετήσετε το πρότυπο μεταξύ των \Q και \E - όλα όσα βρίσκονται μεταξύ τους θεωρούνται διαφυγμένα.
από την άλλη πλευρά του νομίσματος, θα πρέπει να χρησιμοποιήσετε "μη χαρακτήρες" regex που μοιάζει με αυτό εάν ειδικοί χαρακτήρες = allChars - number - ABC - space στο πλαίσιο της εφαρμογής σας.
String regepx = "[^\\s\\w]*";