I need a regular expression to match strings that have letters, numbers, spaces and some simple punctuation (.,!"'/$
). I have ^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$
and it works well for alphanumeric and spaces but not punctuation. Help is much appreciated.
The regex \w is equivalent to [A-Za-z0-9_] , matches alphanumeric characters and underscore.
Considering you want to check for ASCII Alphanumeric characters, Try this: "^[a-zA-Z0-9]*$" . Use this RegEx in String. matches(Regex) , it will return true if the string is alphanumeric, else it will return false.
Yes, the dot regex matches whitespace characters when using Python's re module.
The word boundary \b matches positions where one side is a word character (usually a letter, digit or underscore—but see below for variations across engines) and the other side is not a word character (for instance, it may be the beginning of the string or a space character).
Assuming from your regex that at least one alphanumeric character must be present in the string, then I'd suggest the following:
/^(?=.*[A-Z0-9])[\w.,!"'\/$ ]+$/i
The (?=.*[A-Z0-9])
lookahead checks for the presence of one ASCII letter or digit; the nest character class contains all ASCII alphanumerics including underscore (\w
) and the rest of the punctuation characters you mentioned. The slash needs to be escaped because it's also used as a regex delimiter. The /i
modifier makes the regex case-insensitive.
Just add punctuation and other characters inside classes (inside the square brackets):
[A-Za-z0-9 _.,!"'/$]*
This matches every string containing spaces, _, alphanumerics, commas, !, ", $, ... Pay attention while adding some special characters, maybe you need to escape them: more info here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With