Risposte:
[^a-zA-Z\d\s:]
\de \ssono le estensioni Perl che non sono tipicamente supportate da strumenti più vecchi come grep, sed, tr, lex, ecc
Questo dovrebbe farlo:
[^a-zA-Z\d\s:]
Se vuoi trattare i caratteri latini accentati (es. À Ñ) come lettere normali (es. Evita anche di abbinarli), dovrai anche includere l'intervallo Unicode appropriato ( \ u00C0- \ u00FF ) nella tua regex, quindi sarebbe simile a questo:
/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
^ nega ciò che seguea-zA-Z corrisponde alle lettere maiuscole e minuscole\d corrisponde alle cifre\s corrisponde a uno spazio bianco (se si desidera abbinare solo spazi, sostituirlo con uno spazio): corrisponde a due punti\u00C0-\u00FF corrisponde all'intervallo Unicode per caratteri latini accentati.nb. La corrispondenza dell'intervallo Unicode potrebbe non funzionare per tutti i motori regex, ma quanto sopra sicuramente funziona in Javascript (come visto in questa penna su Codepen).
NB2. Se non ti preoccupi della corrispondenza dei caratteri di sottolineatura, puoi sostituirli a-zA-Z\dcon \wlettere, cifre e caratteri di sottolineatura.
Prova questo:
[^a-zA-Z0-9 :]
Esempio JavaScript:
"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")
Vedi un esempio online:
Nessun alfanumerico, spazio bianco o '_'.
var reg = /[^\w\s)]|[_]/g;
Questo regex funziona per C # , PCRE e Vai per citarne alcuni.
Non funziona per JavaScript su Chrome da quello che dice RegexBuddy . Ma c'è già un esempio per questo qui.
Questa parte principale di questo è:
\p{L}
che rappresenta \p{L}o \p{Letter}qualsiasi tipo di lettera da qualsiasi lingua. »
La regex completa stessa: [^\w\d\s:\p{L}]
Esempio: https://regex101.com/r/K59PrA/2
In JavaScript:
/[^\w_]/g
^negazione, ovvero selezionare qualsiasi cosa non nel seguente set
\w qualsiasi carattere di parola (ovvero qualsiasi carattere alfanumerico, più trattino basso)
_ annulla il carattere di sottolineatura, poiché è considerato un carattere "parola"
Esempio di utilizzo - const nonAlphaNumericChars = /[^\w_]/g;
/[^a-zA-Z0-9\s\:]*/