Regular Expressions: Difference between revisions
New page: Regex is short for Regular Expression and is a syntax that allows for powerful pattern matching. One important use of regular expressions is in multi-line, multi-file editing. For exampl... |
No edit summary |
||
| Line 20: | Line 20: | ||
PCRE was originally written for the Exim MTA, but is now used by many high-profile open source projects, including Apache, PHP, KDE, Postfix, Analog, and Nmap | PCRE was originally written for the Exim MTA, but is now used by many high-profile open source projects, including Apache, PHP, KDE, Postfix, Analog, and Nmap | ||
== Should I use perl, bash, php, awk, sed, ...? == | |||
PHP has rich regular expression support. Perl obviously does too. So when you're at the command line with BASH, what's the best way to quickly search some content for a pattern using a rich regular expression? It can be hard to use bash because of all the quoting and interpolation. But, let's look at a couple examples of searching a PHP configuration file for variable assignments. | |||
Using perl, it's easy to print out only the parenthetical sub-expression | |||
<source lang="bash"> | |||
perl -ne 'print $1 if /\$wgDBuser.*"(.*)"/' ./LocalSettings.php | |||
</source> | |||
Using grep, you have \K for variable length look-behind but it may not be available on older systems. Thus, you may need to use cut | |||
<source lang="bash"> | |||
grep -Po '(?<=\$wgDBuser).*"(.*)"' ./LocalSettings.php | cut -d \" -f 2 | |||
</source> | |||
== Resources == | == Resources == | ||