How can I do this one anywhere?
Basically, I am trying to match all kinds of miscellaneous characters such as ampersands, semicolons, dollar signs, etc.
/[^a-zA-Z0-9\s\:]*/
[^a-zA-Z\d\s:]
\d - numeric class
\s - whitespace
a-zA-Z - matches all the letters
^ - negates them all - so you get - non numeric chars, non spaces and non colons
This should do it:
[^a-zA-Z\d\s:]
If you want to treat accented latin characters (eg. à Ñ) as normal letters (ie. avoid matching them too), you'll also need to include the appropriate Unicode range (\u00C0-\u00FF) in your regex, so it would look like this:
/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
^ negates what follows
a-zA-Z matches upper and lower case letters
\d matches digits
\s matches white space (if you only want to match spaces, replace this with a space)
: matches a colon
\u00C0-\u00FF matches the Unicode range for accented latin characters.
nb. Unicode range matching might not work for all regex engines, but the above certainly works in Javascript (as seen in this pen on Codepen).
nb2. If you're not bothered about matching underscores, you could replace a-zA-Z\d
with \w
, which matches letters, digits, and underscores.
Try this:
[^a-zA-Z0-9 :]
JavaScript example:
"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")
See a online example:
[^a-zA-Z0-9 :]
can be replaced with [^\w:]
\w
includes underscores also, so keep an eye on that
No alphanumeric, white space or '_'.
var reg = /[^\w\s)]|[_]/g;
If you mean "non-alphanumeric characters", try to use this:
var reg =/[^a-zA-Z0-9]/g //[^abc]
In JavaScript:
/[^\w_]/g
^
negation, i.e. select anything not in the following set
\w
any word character (i.e. any alphanumeric character, plus underscore)
_
negate the underscore, as it's considered a 'word' character
Usage example - const nonAlphaNumericChars = /[^\w_]/g;
[^\w_]
is the same as [^\w]
(as _
is a word char), and it is equal to \W
.
This regex works for C#, PCRE and Go to name a few.
It doesn't work for JavaScript on Chrome from what RegexBuddy says. But there's already an example for that here.
This main part of this is:
\p{L}
which represents \p{L}
or \p{Letter}
any kind of letter from any language.`
The full regex itself: [^\w\d\s:\p{L}]
Example: https://regex101.com/r/K59PrA/2
Try to add this:
^[^a-zA-Z\d\s:]*$
This has worked for me... :)
^
and $
anchors confines it to match entire lines and the *
quantifier means it also matches empty lines.
[^\w\s-]
Character set of characters which not:
Alphanumeric
Whitespace
Colon
Success story sharing
\d
and\s
are Perl extensions which are typically not supported by older tools likegrep
,sed
,tr
,lex
, etc.