The design is very human
The design is very human
The design is very human
You're viewing a single thread.
tbf regular expressions suck
How so? I have been getting much more comfortable with it lately, but I am curious what downsides there are
The downsides are having to relearn it every time you need to understand it.
Just use something like https://regex101.com/
not really i just meant they suck to remember how to write without looking up :)
Here is my cheatsheet that has been very helpful. Obviously, this will not teach you how RegEx works, but is a good quick reference when I forget the exact syntax for something.
Pattern | Description |
---|---|
. | Any character, except newline |
\w | Word |
\d | Digit |
\s | Whitespace |
\W | Not word |
\D | Not digit |
\S | Not whitespace |
[abc] | Any of a, b, or c |
[a-e] | Characters between a and e |
[1-9] | Digit between 1 and 9 |
[[:print:]] | Any printable character including spaces |
[^abc] | Any character except a , b or c |
Pattern | Description |
---|---|
\G | Start of match |
^ | Start of string |
$ | End of string |
\A | Start of string |
\Z | End of string |
\z | Absolute end of string |
\b | A word boundary |
\B | Non-word boundary |
^abc | Start with abc |
abc$ | End with abc |
For multiline patterns (m
flag), ^
and $
will act as start and end of line.
Pattern | Description |
---|---|
\. \* \\ | Escape special character used by regex |
\t | Tab |
\n | Newline |
\r | Carriage return |
Pattern | Description |
---|---|
(abc) | Capture group |
(a|b) | Match a or b |
(?:abc) | Match abc , but don't capture |
\1 | Substituted with text matched of the 1st capturing group |
Pattern | Description |
---|---|
a* | Match 0 or more |
a+ | Match 1 or more |
a? | Match 0 or 1 |
a{5} | Match exactly 5 |
a{,3} | Match up to 3 |
a{3,} | Match 3 or more |
a{1,3} | Match between 1 and 3 |
Pattern | Description |
---|---|
a(?=b) | Match a in baby but not in bay |
a(?!b) | Match a in Stan but not in Stab |
(?<=a)b | Match b in crabs but not in cribs |
(?<!a)b | Match b in fib but not in fab |
(?<![a-z])abc(?![a-z]) | Match abc without any letters before/after |
Plus most drop downs allow you to type anyway from memory.