Open main menu

CDOT Wiki β

Changes

OPS102 - Regular Expressions

1,035 bytes added, 27 March
Video Lecture
== Video Lecture ==
* [https://seneca-my.sharepoint.com/:v:/g/personal/chris_tyler_senecacollege_cachris_tyler_senecapolytechnic_ca/EUGN0BHIlzlCmrjXwZgYdSQBoJvWjX9wwfDZKFKS9sGXVg?e=hSdhas Video Lecture on Regular Expressions]
Recommendations:
|Phone Numbers (Canada/US)||<code><nowiki>^[^+[:digit:]]*(\+?1)?[^+[:digit:]]*[2-9]([^+[:digit:]]*[0-9]){9}[^+[:digit:]]*$</nowiki></code>||(416) 967-1111<br>+1 416-736-3636<br>416-439-0000||+65 6896 2391<br>555-1212||A Canadian/US phone number consists of a 3-digit Area Code (which may not start with 0 or 1) and a 10-digit local number consisting of an exchange (3 digits) and a line (4 digits). The country code for Canada and the US is 1, so the number may be preceeded by +1 or 1. Area codes are sometimes contained in parenthesis, and dashes or spaces are sometimes used as separators.
|-
|IP Address (IPv4 dotted quad)||<code><nowiki>^(((25[0-5]|2[0-54][0-9]|[1-2][0-9][0-9]|[1-9][0-9]|[10-9]))\.){3}(25[0-5]|2[0-54][0-9]|[1-2][0-9][0-9]|[1-9][0-9]|[10-9])$</nowiki></code>||1.1.1.1<br>4.4.8.8<br>8.8.8.8<br>7.12.9.43<br>10.106.32.109<br>172.16.97.1<br>192.168.0.1<br>||IP=67.69.105.143<br>1.10.100.1000<br>255.255.255.0<br>IP=100.150.200.250<br>103.271.92.16<br>1O.10.10.10||An IPv4 address in "dotted quad" notations consists of four numbers in the range 0-255 separated by periods. The numbers are called "octets" (which means a collection of eight bits, an alternate way of saying "byte").
|-
|Private IP Address||<code><nowiki>^(10\.((25[0-5]|2[0-54][0-9]|[1-2][0-9][0-9]|[1-9][0-9]|[10-9]))|192\.168|172\.(1[6-9]|2[0-9]|3[0-1]))\.((25[0-5]|2[0-54][0-9]|[1-2][0-9][0-9]|[1-9][0-9]|[10-9]))\.((25[0-5]|2[0-54][0-9]|[1-2][0-9][0-9]|[1-9][0-9]|[10-9]))</nowiki></code>||10.4.72.13<br>172.16.97.1<br>192.168.0.1||IP=192.168.113.42<br>1.1.1.1<br>4.4.8.8<br>192.169.12.6<br>192.168.400.37<br>Address is 1 . 2 . 3 . 4||Valid IPv4 dotted quad address with a first octet of 10; or first two octets of 192.168; or first octet of 172 followed by a second octet in the range 16-31.
|}
* Languages
** Powershell
** Python
** JavaScript
** Perl
** ...and many others!
 
== Windows findstr and Regular Expressions ==
 
The Windows <code>findstr</code> command accepts regular expressions or literal expressions. It will guess what you're using, and may guess incorrectly, so it's best to use the <code>/R</code> and <code>/L</code> optons to directly specify if your search pattern is a regexp or literal.
 
Findstr permits multiple search patterns in a quoted string, separated by a space; this acts like a type of alternation. However, this makes it impossible to use a literal space in a search pattern. If you wish to include a space in your search pattern, prepend <code>/C:</code> to your search string. You can use multiple <code>/C:</code> search strings.
 
For example, <code>FINDSTR /R /C:"red" /C:"blue" INPUTFILE</code> is roughly equivalent to <code>grep -E "red|blue" INPUTFILE</code>
 
Findstr is also limited to (approximately) 127 characters in the regular expression.
 
For information on findstr's regular expression dialect, see <code>help findstr</code>