User Tools

Site Tools


code:regular_expressions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

code:regular_expressions [2006/07/16 19:44] (current)
Line 1: Line 1:
 +====== SED ======
 +===== Substrings =====
 +Using Substrings, you can reuse parts of the expression to match for the replacement. This is a simple example:
 +  $ date
 +  Mon Jul 25 23:59:40 CEST 2005
 +  ​
 +  $ date | sed -n 's/.*\ \(.*\)/​\1/​p'​
 +  2005
 +Important parts are:
 +| **-n** | do not output anything not requested ​                            |
 +| **\(** | marks the beginning of the Substring ​                             | 
 +| **\)** | marks the end of the Substring ​                                        |
 +| **\1** | matches the first Substring defined in the expression |
 +| **/p** | print the substitution ​                                                        |
  
 +===== Order of Evaluation =====
 +Strangely, the order of evaluation of Regular Expressions works from right to left. The simple example below proofs this:
 +  $ release=`uname -r`
 +  ​
 +  $ echo $release
 +  2.6.12-gentoo-r6
 +  ​
 +  $ expr $release : '​\(.*\)\..*'​
 +  2.6
 +  ​
 +  $ expr $release : '​\(.*\)\..*\..*'​
 +  2
 +  ​
 +  $ expr $release : '​\(.*\..*\)\..*'​
 +  2.6
 +  ​
 +  $ expr $release : '​\(.*\..*\).*'​
 +  2.6.12-gentoo-r6
 +Clearly to be seen, the "​.*"​ right of the brackets has higher priority than the one inside the brackets.
code/regular_expressions.txt · Last modified: 2006/07/16 19:44 (external edit)