Yanıtlar:
[^a-zA-Z\d\s:]
\d
ve \s
Perl tipik gibi eski araçları tarafından desteklenmeyen uzantılarıdır grep
, sed
, tr
, lex
vb
Bunu yapmalı:
[^a-zA-Z\d\s:]
Vurgulu latin karakterleri (ör. À Ñ) normal harfler olarak ele almak istiyorsanız (yani, onları eşleştirmekten de kaçının), ayrıca normal ifadenize uygun Unicode aralığını ( \ u00C0- \ u00FF ) eklemeniz gerekir. şöyle görünürdü:
/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
^
sonrasını reddedera-zA-Z
büyük ve küçük harflerle eşleşir\d
rakamlarla eşleşir\s
boşlukla eşleşir (yalnızca boşlukları eşleştirmek istiyorsanız, bunu bir boşlukla değiştirin):
iki nokta üst üste ile eşleşir\u00C0-\u00FF
aksanlı latin karakterler için Unicode aralığıyla eşleşir.nb. Unicode aralığı eşleştirmesi tüm normal ifade motorlarında çalışmayabilir, ancak yukarıdakiler kesinlikle Javascript'te çalışır ( Codepen'deki bu kalemde görüldüğü gibi ).
NB2. Alt çizgileri eşleştirme konusunda sıkıntı yaşamıyorsanız , harflerle, rakamlarla ve alt çizgilerle eşleşen a-zA-Z\d
ile değiştirebilirsiniz \w
.
Bunu dene:
[^a-zA-Z0-9 :]
JavaScript örneği:
"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")
Çevrimiçi bir örneğe bakın:
Alfasayısal, beyaz boşluk veya "_" yok.
var reg = /[^\w\s)]|[_]/g;
Bu normal ifade C # , PCRE ve Go için çalışır için .
RegexBuddy'den Chrome'da JavaScript için çalışmıyor söylediği gibi . Ama burada bunun bir örneği var.
Bunun ana kısmı şudur:
\p{L}
temsil ettiği \p{L}
ya da \p{Letter}
herhangi language.` gelen mektupta her türlü
Tam normal ifadenin kendisi: [^\w\d\s:\p{L}]
JavaScript'te:
/[^\w_]/g
^
olumsuzluk, yani aşağıdaki kümede olmayan herhangi bir şeyi seçin
\w
herhangi bir kelime karakteri (yani herhangi bir alfanümerik karakter, artı alt çizgi)
_
bir 'kelime' karakteri olarak kabul edildiği için alt çizgiyi reddedin
Kullanım örneği - const nonAlphaNumericChars = /[^\w_]/g;
/[^a-zA-Z0-9\s\:]*/