Σημειώσεις
Σημειώσεις
Σημειώσεις
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ΕΙΣΑΓΩΓΗ ΣΤO UNIX /Eντολές & Τext Manipulation – ΕΡΓΑΣΤΗΡΙΟ 5<br />
Εντολές<br />
Εντολή word count wc - µετρώντας .. σε ένα αρχείο<br />
vassik@aetos:~/xunix/lab5$ wc /etc/passwd<br />
1466 2936 111829 /etc/passwd<br />
vassik@aetos:~/xunix/lab5$ wc -l /etc/passwd<br />
1466 /etc/passwd<br />
vassik@aetos:~/xunix/lab5$ wc -w /etc/passwd<br />
2936 /etc/passwd<br />
vassik@aetos:~/xunix/lab5$ wc -c /etc/passwd<br />
111829 /etc/passwd<br />
η option –l (line) δίνει τον αριθµό των γραµµών<br />
η option –w (word) δίνει τον αριθµό των λέξεων<br />
(όπου βρίσκει κενό ή newline, µετρά λέξεις)<br />
η option –c (char) δίνει τον αριθµό των χαρακτήρων<br />
(µετρά και το newline)<br />
Συνδέοντας εντολές µε pipelines | - διασωληνώσεις<br />
Η προκαθορισµένη έξοδος µιας επεξεργασίας/προγράµµατος µπορεί να είναι η είσοδος µιας<br />
άλλης επεξεργασίας. Όταν γίνεται αυτό σχηµατίζεται µια pipeline<br />
vassik@aetos:~/xunix/lab5$ who | wc -l<br />
6<br />
vassik@aetos:~$ ls -l /tmp | grep akefalas<br />
-rw-rw-rw- 1 akefalas x0910 121 Apr 10 11:38 textVi.txt<br />
To αποτέλεσµα του 1ου<br />
γίνεται είσοδος για το 2ο<br />
Το αποτέλεσµα της who (που µας δείχνει ποιοι είναι<br />
συνδεδεµένοι δηλ. µια γραµµή για κάθε χρήστη)<br />
γίνεται είσοδος για το wc -l ώστε τελικά µετράει<br />
πόσοι είναι συνδεδεµένοι..<br />
Η εντολή grep string file ψάχνει ένα string µέσα σε<br />
ένα file. Έτσι το αποτέλεσµα της ls δηλ. η λίστα του<br />
καταλόγου /tmp γίνεται το αντικείµενο έρευνας της<br />
grep ψάχνει δηλ. εκεί το string akefalas και αν το<br />
βρει µας το εµφανίζει.<br />
vassik@aetos:~$ ls -l /tmp | grep akefalas | sort | lpr<br />
Αν δεν υπήρχε η δυνατότης | , για το παραπάνω θα έπρεπε να γράψουµε π.χ.<br />
~$ ls -l /tmp > file1<br />
~$ grep akefalas file1 > file2<br />
~$ sort file2 > file3<br />
~$ lpr file3<br />
~$ rm file[123]<br />
[1]
ΕΙΣΑΓΩΓΗ ΣΤO UNIX /Eντολές & Τext Manipulation – ΕΡΓΑΣΤΗΡΙΟ 5<br />
Text Manipulation µε τις grep, fgrep, egrep<br />
Find a pattern µε την grep (global regular expression print)<br />
Το grep είναι ένα utility πρόγραµµα που ψάχνει ένα ή περισσότερα από ένα αρχεία για γραµµές<br />
που περιέχουν strings ενός συγκεκριµένου πρότυπου/µοτίβου (pattern).<br />
Οι γραµµές που το ταιριάζουν (match the pattern) εµφανίζονται στην οθόνη.<br />
Η πιο απλή περίπτωση είναι ένα fixed string pattern - σταθερής ακολουθίας χαρακτήρων.<br />
Υπάρχουν όµως και πιο πολύπλοκα που καλούνται regular expressions.<br />
Το fgrep (fast ή fixed) utility µόνο για fixed character strings.<br />
Το egrep (extended) utility για full regular expressions.<br />
• Fixed Character strings<br />
vassik@aetos:~/xunix/lab4$ tail -5 /etc/passwd >pass<br />
vassik@aetos:~/xunix/lab4$ cat pass<br />
Στο αρχείο pass ψάχνουµε το string student<br />
Κατόπιν ψάχνουµε 1 το string staff<br />
vassik@aetos:~/xunix/lab4$ grep student pass<br />
vassik@aetos:~/xunix/lab4$ grep staff<br />
pass<br />
vc<br />
vassik@aetos:~/xunix/lab4$ tail -1 /etc/passwd >pass1<br />
Στα δύο αρχεία pass και pass1 ψάχνουµε το string staff<br />
vassik@aetos:~/xunix/lab4$ grep staff<br />
vc<br />
pass pass1<br />
2<br />
Στο αρχείο pass ψάχνουµε το string “Papamichail Dimitrios“<br />
vassik@aetos:~/xunix/lab4$ grep «Papamichail Dimitrios»<br />
pass<br />
To string όταν περιέχει κενό πρέπει να µπεί µέσα σε (διπλά και ακόµη καλύτερα µονά) εισαγωγικά 1<br />
1 Μια εντολή της µορφής grep student staff pass θα έψαχνε στα αρχεία staff και pass να βρεί το string<br />
student (το 1 ο όρισµα είναι το string, ενώ τα υπόλοιπα, εδώ 2o & 3o όρισµα, ονόµατα αρχείων)<br />
2 Αν δεν θέλουµε να βλέπουµε στο αποτέλεσµα τα ονόµατα των αρχείων βάζω option -h (header)<br />
[2]
ΕΙΣΑΓΩΓΗ ΣΤO UNIX /Eντολές & Τext Manipulation – ΕΡΓΑΣΤΗΡΙΟ 5<br />
• Regular Expressions in Text pattern<br />
Μπορούµε στην grep να δώσουµε ένα pattern (ή template) κειµένου που θέλουµε να βρεθεί.<br />
Π.χ. να βρεθούν όλες οι λέξεις µε 4 γράµµατα που αρχίζουν από d, ή αυτές που έχουν 6 ψηφία<br />
στο τέλος κτλ. (το αποτέλεσµα θα είναι πάντα γραµµές που κάνουν match το pattern)<br />
Τέτοιες pattern (ή template) λέγονται κανονικές εκφράσεις (Regular Expressions) και<br />
«δουλεύουν» όπως τα wildcards που είδαµε στα ονόµατα των αρχείων και των directories δηλ.<br />
χρησιµοποιούν κάποιους χαρακτήρες µε ειδικό νόηµα τους metacharacters.<br />
Εστω 3 το παρακάτω αρχείο µε όνοµα grape που έχει 7 γραµµές:<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
How long, how long, in infinite Pursuit<br />
Of This and That endeavour and dispute<br />
Better be merry with the fruitful Grape<br />
…………..Than sadden after none, or bitter, fruit.<br />
.<br />
How long ...<br />
1 η γραµµή<br />
2 η γραµµή<br />
3η γραµµή<br />
4 η γραµµή (έχει 14 κενά)<br />
5 η γραµµή (έχει 1 κενό)<br />
6η γραµµή<br />
7 η γραµµή κενή<br />
και θέλω π.χ. να βρω από το αρχείο grape τις γραµµές που αρχίζουν µε How και τις κενές<br />
(τα ^How και ^$ είναι κανονικές εκφράσεις δηλ. RE ή regex )<br />
vassik@aetos:~/xunix/lab5$ grep --color ^How grape<br />
How long, how long, in infinite Pursuit<br />
vassik@aetos:~/xunix/lab5$ grep -n ^$ grape<br />
7: vc<br />
option --color χρωµατίζει µε π.χ. κόκκινο<br />
χρώµα τα ταιριάζοντα pattern<br />
option -n (number) δίνει και το νούµερο<br />
της γραµµής<br />
Τι σηµαίνει Π.χ. γραµµές που Ν ο γρ. Σχόλια<br />
(fixed string) Ηοw έχουν τo How 1,6 Τα fixed που είδαµε πριν<br />
anchors<br />
^ αρχή γραµµής ^How ξεκινούν 4 µε τo How 1 H 6 η ξεκινά µε κενά ή tab<br />
$ τέλος γραµµής uit$ τελειώνουν 3 µε τo uit 1 Η 4 η έχει στο τέλος και µια τελεία<br />
^$ κενές/άδειες γραµµές 7 Η 5 η θα έχει κενά!<br />
'^How long …$' έχουν το 'Ηow long …' δεν δίνει την 6 η<br />
'^ .' ξεκινούν µε κενό 4,5<br />
ξεκινά µε κενά/tab<br />
vassik@aetos:~/xunix/lab5$ grep –n '^ ' grape<br />
4: Than sadden after none, or bitter, fruit.<br />
5:<br />
vc<br />
κενό<br />
Τα κενά λοιπόν παίζουν «ρόλο», πρέπει να µπαίνουν σε εισαγωγικά:<br />
3 Aν θέλετε να το αντιγράψετε στο φάκελο που είστε: cp /home/staff/ektaktoi/vassik/xunix/lab05/grape .<br />
4 Το ^ είναι anchor µόνο στην αρχή, το $ µόνο στο τέλος, σε άλλο σηµείο χάνουν την µετασηµασία τους.<br />
[3]
ΕΙΣΑΓΩΓΗ ΣΤO UNIX /Eντολές & Τext Manipulation – ΕΡΓΑΣΤΗΡΙΟ 5<br />
Τι σηµαίνει Π.χ. γραµµές που Ν ο γρ. Σχόλια<br />
. ένας οποιοσδήποτε ' T... .' έχουν λέξεις 6 που 2,4<br />
χαρακτήρας 5 ξεκινούν µε Τ µετά έχουν<br />
3 chars (κενό πριν/µετά) 7<br />
'^T... .'<br />
' T...$.'<br />
uit.$<br />
ξεκινούν µε λέξη από Τ<br />
µετά 3 chars (κενό µετά)<br />
τελειώνουν µε λέξη, από Τ<br />
και 3 chars µετά (κενό πριν)<br />
τελειώνουν µε το uit<br />
και µετά έχουν 1 char.<br />
∆εν υπάρχουν.<br />
Η 4 η ξεκινά µε κενά<br />
∆εν υπάρχουν<br />
4 Αν στο τέλος της 1 ης υπήρχε κενό<br />
θα έβγαινε και η 1η<br />
\ πριν από ένα<br />
metachar ακυρώνει το<br />
ειδικό νόηµά του<br />
uit\.$<br />
τελειώνουν µε το uit<br />
και µετά έχουν τελεία<br />
4 Το \ πριν την τελεία ακυρώνει την<br />
µετασηµασία της τελείας (1char)<br />
' fruit. '<br />
' fruit\.'<br />
έχουν την λέξη fruit και<br />
µετά 1 char (κενό πριν)<br />
έχουν την λέξη fruit και<br />
µετά τελεία (κενό πριν)<br />
3,4 αν θέλουµε µόνο λέξεις fruit δεν<br />
έχει επιθυµητό αποτέλεσµα<br />
4<br />
Kλάσεις χαρακτήρων µε [ ] και [-]<br />
How long, how long, in infinite Pursuit<br />
Of This and That endeavour and dispute<br />
Better be merry with the fruitful Grape<br />
Than sadden after none, or bitter, fruit.<br />
How long ...<br />
Μέσα στα [ ] καθορίζεται το σύνολο ή το διάστηµα των χαρακτήρων που ψάχνουµε :<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
Τι σηµαίνει Π.χ. γραµµές που Ν ο γρ. Σχόλια<br />
[ ] χαρακτήρας από το [Tt]his έχουν τo This ή το this 2<br />
σύνολο µέσα στα []<br />
^[Tt]his ξεκινούν µε Τhis ή this ∆εν υπάρχουν.<br />
^[BHOT] ξεκινούν µε Β ή Η ή Ο ή Τ 1,2 3 η ,4 η ,6 η ξεκινούν µε κενά/tab<br />
[BT] που έχουν Β ή Τ 2,3,4<br />
[-] χαρακτήρας από το<br />
διάστηµα µέσα στα[]<br />
^[B-T]<br />
^[B-HO-T]<br />
ξεκινούν µε χαρακτήρα στο<br />
διάστηµα από Β έως Τ<br />
ξεκινούν µε χαρακτήρα στο<br />
διάστηµα από Β έως Η ή στο<br />
διάστηµα Ο έως Τ<br />
1,2<br />
1,2<br />
[^] χαρακτήρας που δεν<br />
ανήκει στο σύνολο<br />
µέσα στα []<br />
[^BT]h<br />
^[^BT]<br />
έχουν char διαφορετικό 8 από<br />
Β,Τ και µετά h<br />
ξεκινούν µε χαρακτήρα που<br />
δεν είναι Β ή Τ<br />
1, 3 Η option --color θα βοηθήσει<br />
να κατανοηθεί καλύτερα<br />
1,2,3,<br />
4,5,6<br />
…τι γίνεται µε την 7 η ( 5 )<br />
5 Εκτός από τον χαρακτήρα newline (τέλος γραµµής \n)<br />
6 Όταν πρόκειται για ολόκληρες «λέξεις» µπορεί να έχουν πριν ένα κενό, και µετά ή κενό ή κάτι άλλο πχ .<br />
7 Στην περίπτωση T... λέξη θα θεωρηθεί πχ και το Τ34b που δεν είναι λέξη µε νόηµα!, κύττα πιο κάτω.<br />
8 Μια εντολή [^ΒΤ] θα δώσει γραµµές 1..6 δηλ. και 2 η , 4 η µιας και έχουν µόνο Τ όχι Β, και 3 η έχει µόνο Β<br />
[4]
ΕΙΣΑΓΩΓΗ ΣΤO UNIX /Eντολές & Τext Manipulation – ΕΡΓΑΣΤΗΡΙΟ 5<br />
Τι σηµαίνει Π.χ. γραµµές που Ν ο γρ. Σχόλια<br />
[^-] χαρακτήρας που δεν [^B-T]h<br />
έχουν χαρακτήρα που<br />
ανήκει στο διάστηµα<br />
δεν είναι από Β έως Τ<br />
µέσα στα []<br />
και µετά h<br />
1 κενό(δεν είναι στο Β-Τ) και<br />
µετά how<br />
Προσοχή στα κενά µπρος και<br />
πίσω από την λέξη που<br />
περικλείονται σε µονά εισαγωγικά<br />
' [Tt][a-z][a-z][a-z] '<br />
έχoυν λέξη από Τ ή t και<br />
άλλα 3 γράµµατα µετά από<br />
a έως z ()<br />
' [^Tt][a-z][a-z][a-z] ' 4char λέξεις που ο 1 ος char<br />
δεν είναι Τ ή t<br />
2,4 Πιο καλό! από το ' T... .'<br />
που θεωρεί οποιοδήποτε<br />
χαρακτήρα µετά το Τ<br />
3,6 option --color θα βοηθήσει<br />
Αριθµοί<br />
[1230] αριθµοί 1ή 2 ή 3 ή 0<br />
[0-3] αριθµοί στο διάστηµα 0-3<br />
[1-30] αριθµοί στο διάστηµα 1-3 ή 0 (και όχι από 1 έως το 30)<br />
[1-9][0-9] διψήφιοι αριθµοί<br />
Ο χαρακτήρας -<br />
Αν θέλουµε να ανήκει στο σύνολο των χαρακτήρων που ψάχνουµε ο χαρακτήρας - αρκεί να τον<br />
βάλουµε στην αρχή 9 ή να άρουµε την σηµασία του µε \- (να µην µπερδευτεί µε το διάστηµα) π.χ.<br />
[-bm] σηµαίνει ο χαρακτήρας - , ή o χαρακτήρας b, ή o χαρακτήρας m<br />
Oι επεκταµένες (full) κανονικές εκφράσεις υποστηρίζονται από την εντολή egrep που είναι<br />
υπερσύνολο της grep.<br />
Η egrep αναζητεί όσα και η grep αλλά και RE µε επιπλέον µεταχαρακτήρες (π.χ. +,,| ).<br />
Closures { } Επαναλαµβανόµενα pattern µε την egrep<br />
Γενικά ένας αριθµός µέσα σε άγκιστρα π.χ. {3} µετά από µια έκφραση καθορίζει τον αριθµό των<br />
φορών που η έκφραση θα επαναληφθεί π.χ.<br />
αν θέλω µια λέξη από Τ ή t και άλλα 3 γράµµατα µετά από a έως z (κενό πριν, µετά)<br />
' [Tt][a-z]{3} '<br />
closure<br />
H γενική όµως φόρµα είναι {n,m} και<br />
σηµαίνει εµφανίσεις το λιγότερο n φορές και το περισσότερο m.<br />
$ egrep --color '[Tt][a-z]{3}' grape<br />
Of This and That endeavour and dispute<br />
Better be merry with the fruitful Grape<br />
Than sadden after none, or bitter, fruit.<br />
$ egrep --color ' [Tt][a-z]{3} ' grape<br />
Of This and That endeavour and dispute<br />
Than sadden after none, or bitter, fruit.<br />
9 παρόµοια ισχύει και για τα [ και ]<br />
[5]
ΕΙΣΑΓΩΓΗ ΣΤO UNIX /Eντολές & Τext Manipulation – ΕΡΓΑΣΤΗΡΙΟ 5<br />
closure Συντ/φία Εµφανίσεις Σχόλια<br />
{1,3} από µια έως τρεις γενικότερα {n,m}<br />
{3} τρεις γενικότερα {n}<br />
{0, } * καµία ή περισσότερες 10 υποστηρίζεται από σχεδόν όλες τις<br />
version της egrep (και την grep)<br />
{1, } + µία ή περισσότερες 10<br />
{0, 1} καµία ή µία<br />
* {0,∞}<br />
+ {1,∞}<br />
{0,1}<br />
Ετσι σε ένα οποιοδήποτε αρχείο, π.χ. στο αρχείο grape, η εντολή<br />
$ egrep '.*' grape<br />
που σηµαίνει match από 0 έως άπειρους χαρακτήρες, δίνει όλες τις γραµµές<br />
δηλαδή είναι ίδια µε την cat grape (αλλά η cat είναι πιο εύκολη και γρήγορη).<br />
Mερικά παραδείγµατα στο αρχείο 11 µε όνοµα tra<br />
Αρχείο tra Eντολή εξήγηση αποτέλεσµα-γραµµές<br />
1<br />
2<br />
3<br />
ra la la tra<br />
traaatratra<br />
tra tra tra tra<br />
egrep 't{1,3}' tra<br />
egrep 'tra{1,3}' tra<br />
egrep 'tra{3}' tra<br />
1..3 εµφανίσεις του t<br />
tr, 1..3 εµφανίσεις του a<br />
tr και 3 επαναλήψεις του a<br />
όλες και η 3 η<br />
όλες οι γραµµές<br />
2 η γραµµή<br />
egrep 'tra {1,3}' tra<br />
egrep '(tra ){3}' tra<br />
tra, 1..3 εµφανίσεις του κενό<br />
3 εµφανίσεις του tra κενό<br />
3 η (1 η 2 η δεν έχει κενό)<br />
3 η (oµαδοποίηση µε () )<br />
Μερικά παραδείγµατα στο αρχείο µε όνοµα ab<br />
Eντολή εξήγηση αποτέλεσµα<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
ac<br />
ababcbabc<br />
abbc<br />
abbbc<br />
abcbc<br />
abcbcbc<br />
egrep '.*' ab<br />
egrep 'a*' ab<br />
egrep 'a' ab<br />
egrep 'a ' ab<br />
egrep 'a+' ab<br />
Ένας χαρακτήρας εµφανίζεται 0..∞<br />
To a εµφανίζεται 0..∞<br />
To a εµφανίζεται 0..1<br />
To a εµφανίζεται 0..1 µετά κενό<br />
To a εµφανίζεται 1..∞<br />
όλες οι γραµµές<br />
όλες οι γραµµές<br />
όλες οι γραµµές<br />
καµία –δεν υπάρχει<br />
όλες οι γραµµές<br />
egrep -n 'ab+c' ab<br />
egrep -n '(ab)+c' ab<br />
a, επανάληψη b 1..∞, και c<br />
ab επανάληψη 1..∞, και c<br />
όλες εκτός της 1 ης<br />
2 η ,5 η ,6 η<br />
egrep -n 'abc' ab<br />
a, επανάληψη b 0..1, και c<br />
1 η ,2 η ,5 η ,6 η<br />
egrep -n 'a(bc)*' ab<br />
egrep -n 'a(bc)' ab<br />
egrep -n 'a(bc)+' ab<br />
a, επανάληψη bc 0..∞<br />
a, επανάληψη bc 0..1<br />
a, επανάληψη bc 1.. ∞<br />
όλες οι γραµµές<br />
όλες οι γραµµές<br />
2 η ,5 η ,6η<br />
oµαδοποίηση µε παρενθέσεις ()<br />
10 Περισσότερες σηµαίνει πάρα πολλές (το συµβολίζω µε ∞, χωρίς όµως να έχει την έννοια του άπειρου)<br />
11 Aν θέλετε να το αντιγράψετε στο φάκελο που είστε: cp /home/staff/ektaktoi/vassik/xunix/lab05/tra .<br />
[6]
ΕΙΣΑΓΩΓΗ ΣΤO UNIX /Eντολές & Τext Manipulation – ΕΡΓΑΣΤΗΡΙΟ 5<br />
Αρχείο ab<br />
Οµαδοποιήσεις των regex<br />
Παρενθέσεις ( ) τοποθετούνται στην κανονική έκφραση ώστε οι µεταχαρακτήρες<br />
πχ *, + ή , να δράσουν στην έκφραση αντί σε ένα µόνο χαρακτήρα.<br />
Για να επαναληφθούν κάποιες οµάδες regex µπορεί να χρησιµοποιηθεί η back reference \<br />
π.χ (RE1)ab(RE2)cd\1e\2xy\1 σηµαίνει RE1abRE2cdRE1eRE2xyRE1<br />
µε RE1 και RE2 να είναι συγκεκριµένες κανονικές εκφράσεις<br />
1η oµάδα 2η οµάδα<br />
Back Reference<br />
αναδρ/κή αναφορά<br />
\1 1 η οµάδα<br />
\n n η οµάδα (1..9)<br />
οµάδες είναι<br />
RE µέσα στις ()<br />
οι<br />
egrep '(.)\1' ab<br />
egrep '(bc)\1' ab<br />
egrep '([bc])\1' ab<br />
egrep '([bc]{2})\1' ab<br />
egrep '(b)[ac]\1' ab<br />
Επανάληψη ενός χαρακτήρα της οµάδας,<br />
ένα γράµµα επαναλαµβανόµενο (εδώ το b)<br />
Επανάληψη bc<br />
Επανάληψη ή b ή c<br />
Όµοιο µε '([bc][bc])\1' επανάληψη<br />
ή bb ή bc ή cc<br />
Επανάληψη b µε ενδιάµεσο a ή c<br />
ac<br />
ababcbabc<br />
abbc<br />
abbbc<br />
abcbc<br />
abcbcbc<br />
γραµµές 3,4<br />
γραµµές 5,6<br />
γραµµές 3,4<br />
γραµµές 5,6<br />
γραµµές 2,5,6<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
egrep '(.)(.)\1\2' ab<br />
1 ος char, 2 ος char, & επανάληψη του 1 ου 2 ου<br />
γραµµές 2,5,6<br />
Εναλλακτικές pattern µε την egrep<br />
(|) RE|RE egrep '(This|That)' grape έχουν This ή Τhat Γραµµή 2<br />
Options -v , -i, -y, -c, -l, -r<br />
-v (invert) εµφανίζονται όλες οι γραµµές εκτός από αυτές που ταιριάζουν<br />
-i ,-y (ignore case) αγνόησε κεφαλαία µικρά<br />
-c (count) δίνει µόνο πλήθος γραµµών (που ταίριαξαν)<br />
-l (list) δίνει τα ονόµατα των matching αρχείων (ταίριασµα για περισσότερα από ένα αρχεία)<br />
-r (recursive) ψάχνει σε καταλόγους και υποκαταλόγους<br />
vassik@aetos:~/xunix/lab4$ grep -v student<br />
pass<br />
anchors<br />
Συνοπτικός πίνακας<br />
^ αρχή γραµµής<br />
$ τέλος γραµµής<br />
. ένας οποιοσδήποτε χαρακτήρας 12<br />
\ πριν από ένα metachar ακυρώνει το ειδικό νόηµά του<br />
[ ] χαρακτήρας από το σύνολο µέσα στα []<br />
[-] χαρακτήρας από το διάστηµα µέσα στα[]<br />
[^] χαρακτήρας που δεν ανήκει στο σύνολο µέσα στα []<br />
[^-] χαρακτήρας που δεν ανήκει στο διάστηµα µέσα στα []<br />
* (0..∞) καµία ή περισσότερες 13 εµφανίσεις της προηγούµενης RE<br />
+ (1..∞) µία ή περισσότερες 13 εµφανίσεις της προηγούµενης RE<br />
(0..1) καµία ή µία εµφανίσεις της προηγούµενης RE<br />
{1,3} (n..m) 1 έως 3 εµφανίσεις της προηγούµενης RE<br />
\1 Επανάληψη της 1 ης οµάδας RE (\2 αντίστοιχα της 2 ης ..)<br />
(|) Εναλλακτικές patterns<br />
12 Εκτός από τον χαρακτήρα newline (τέλος γραµµής \n)<br />
13 Περισσότερες σηµαίνει πάρα πολλές (το συµβολίζω µε ∞, χωρίς όµως να έχει την έννοια του άπειρου)<br />
[7]