13.01.2015 Views

Σημειώσεις

Σημειώσεις

Σημειώσεις

SHOW MORE
SHOW LESS

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]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!