Regex difference: (\w+)? and (\w*)

(\w+)? and (\w*) both match the same (0..+inf word characters) However, there is a slight difference: In the first case, if this part of the regex matches “”, the capturing group is absent. In the second case, it is empty. In some languages, the former manifests as a null while the latter should always be “”. In Javascript, for example, In PHP … Read more

Regex to validate date formats dd/mm/YYYY, dd-mm-YYYY, dd.mm.YYYY, dd mmm YYYY, dd-mmm-YYYY, dd/mmm/YYYY, dd.mmm.YYYY with Leap Year Support

The regex you pasted does not validate leap years correctly, but there is one that does in the same post. I modified it to take dd/mm/yyyy, dd-mm-yyyy or dd.mm.yyyy. ^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$ I tested it a bit in the link Arun provided in his answer and also here and it seems to work. Edit February 14th 2019: I’

Remove punctuation from string with Regex

First, please read here for information on regular expressions. It’s worth learning. You can use this: Which means: In the end it reads “replace any character that is not a word character or a space character with nothing.”

What is the best regular expression to check if a string is a valid URL?

I wrote my URL (actually IRI, internationalized) pattern to comply with RFC 3987 (http://www.faqs.org/rfcs/rfc3987.html). These are in PCRE syntax. For absolute IRIs (internationalized): To also allow relative IRIs: How they were compiled (in PHP): Edit 7 March 2011: Because of the way PHP handles backslashes in quoted strings, these are unusable by default. You’ll need … Read more

Regular expression to validate US phone numbers?

The easiest way to match both and is to use alternation ((…|…)): specify them as two mostly-separate options: By the way, when Americans put the area code in parentheses, we actually put a space after that; for example, I’d write (123) 123-1234, not (123)123-1234. So you might want to write: (Though it’s probably best to explicitly demonstrate the format … Read more