Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

1.5 Οι συναρτήσεις στα RegEx

Η συνάρτηση findall()
Η συνάρτηση findall() επιστρέφει μια λίστα που περιέχει όλες τις αντιστοιχίες.

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Το κατάστημα έχει 12 μήλα, 24 πορτοκάλια και 35 μπανάνες"
συνθήκη = r"\d+"
αποτέλεσμα = re.findall(συνθήκη, κείμενο)
print("Τα αποτελέσματα είναι:", αποτέλεσμα)
import re κείμενο = "Το κατάστημα έχει 12 μήλα, 24 πορτοκάλια και 35 μπανάνες" συνθήκη = r"\d+" αποτέλεσμα = re.findall(συνθήκη, κείμενο) print("Τα αποτελέσματα είναι:", αποτέλεσμα)
import re

κείμενο = "Το κατάστημα έχει 12 μήλα, 24 πορτοκάλια και 35 μπανάνες"
συνθήκη = r"\d+"

αποτέλεσμα = re.findall(συνθήκη, κείμενο)
print("Τα αποτελέσματα είναι:", αποτέλεσμα)

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Τα αποτελέσματα είναι: ['12', '24', '35']
Τα αποτελέσματα είναι: ['12', '24', '35']
Τα αποτελέσματα είναι: ['12', '24', '35']

Στο παράδειγμα αυτό, η συνάρτηση findall() επιστρέφει μια λίστα με όλες τις αντιστοιχίες των αριθμών που βρίσκονται μέσα στο κείμενο. Η συνθήκη r”\d+” ψάχνει για ένα ή περισσότερα ψηφία στη σειρά.

Η λίστα περιέχει τις αντιστοιχίες με τη σειρά που βρίσκονται.

Εάν δεν βρεθούν αντιστοιχίες, επιστρέφεται μια κενή λίστα:

Παράδειγμα
Επιστρέψτε μια κενή λίστα εάν δεν βρεθεί καμία αντιστοιχία:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Το κατάστημα έχει μήλα, πορτοκάλια και μπανάνες"
συνθήκη = r"\d+"
αποτέλεσμα = re.findall(συνθήκη, κείμενο)
print("Τα αποτελέσματα είναι:", αποτέλεσμα)
import re κείμενο = "Το κατάστημα έχει μήλα, πορτοκάλια και μπανάνες" συνθήκη = r"\d+" αποτέλεσμα = re.findall(συνθήκη, κείμενο) print("Τα αποτελέσματα είναι:", αποτέλεσμα)
import re

κείμενο = "Το κατάστημα έχει μήλα, πορτοκάλια και μπανάνες"
συνθήκη = r"\d+"

αποτέλεσμα = re.findall(συνθήκη, κείμενο)
print("Τα αποτελέσματα είναι:", αποτέλεσμα)

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Τα αποτελέσματα είναι: []
Τα αποτελέσματα είναι: []
Τα αποτελέσματα είναι: []

Στο παράδειγμα αυτό, καθώς δεν υπάρχουν αριθμοί μέσα στο κείμενο, η συνάρτηση findall() επιστρέφει μια κενή λίστα.

Η συνάρτηση search() αναζητά αντιστοιχία μέσα στο κείμενο και επιστρέφει ένα αντικείμενο Match αν βρεθεί αντιστοιχία.

[adinserter block=”2″]

Εάν υπάρχει περισσότερες από μία αντιστοιχίες, μόνο η πρώτη εμφάνιση της αντιστοιχίας θα επιστραφεί:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"\d+"
αποτέλεσμα = re.search(συνθήκη, κείμενο)
if αποτέλεσμα:
print("Η πρώτη αντιστοιχία είναι:", αποτέλεσμα.group())
else:
print("Δεν βρέθηκε αντιστοιχία")
import re κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες" συνθήκη = r"\d+" αποτέλεσμα = re.search(συνθήκη, κείμενο) if αποτέλεσμα: print("Η πρώτη αντιστοιχία είναι:", αποτέλεσμα.group()) else: print("Δεν βρέθηκε αντιστοιχία")
import re

κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"\d+"

αποτέλεσμα = re.search(συνθήκη, κείμενο)

if αποτέλεσμα:
    print("Η πρώτη αντιστοιχία είναι:", αποτέλεσμα.group())
else:
    print("Δεν βρέθηκε αντιστοιχία")

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Η πρώτη αντιστοιχία είναι: 2500
Η πρώτη αντιστοιχία είναι: 2500
Η πρώτη αντιστοιχία είναι: 2500

Στο παράδειγμα αυτό, παρόλο που υπάρχουν δύο αριθμοί στο κείμενο, η συνάρτηση search() επιστρέφει μόνο την πρώτη αντιστοιχία.

Εάν δεν βρεθούν αντιστοιχίες, επιστρέφεται η τιμή None:

Παράδειγμα
Κάντε μια αναζήτηση που δεν επιστρέφει αντιστοιχία:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"Δεν υπάρχει αντιστοιχία"
αποτέλεσμα = re.search(συνθήκη, κείμενο)
if αποτέλεσμα:
print("Η πρώτη αντιστοιχία είναι:", αποτέλεσμα.group())
else:
print("Δεν βρέθηκε αντιστοιχία")
import re κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες" συνθήκη = r"Δεν υπάρχει αντιστοιχία" αποτέλεσμα = re.search(συνθήκη, κείμενο) if αποτέλεσμα: print("Η πρώτη αντιστοιχία είναι:", αποτέλεσμα.group()) else: print("Δεν βρέθηκε αντιστοιχία")
import re

κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"Δεν υπάρχει αντιστοιχία"

αποτέλεσμα = re.search(συνθήκη, κείμενο)

if αποτέλεσμα:
    print("Η πρώτη αντιστοιχία είναι:", αποτέλεσμα.group())
else:
    print("Δεν βρέθηκε αντιστοιχία")

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Δεν βρέθηκε αντιστοιχία
Δεν βρέθηκε αντιστοιχία
Δεν βρέθηκε αντιστοιχία

Η συνάρτηση split() επιστρέφει μια λίστα όπου το κείμενο έχει διαχωριστεί σε κάθε αντιστοιχία:

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"\d+"
αποτέλεσμα = re.split(συνθήκη, κείμενο)
print(αποτέλεσμα)
import re κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες" συνθήκη = r"\d+" αποτέλεσμα = re.split(συνθήκη, κείμενο) print(αποτέλεσμα)
import re

κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"\d+"

αποτέλεσμα = re.split(συνθήκη, κείμενο)

print(αποτέλεσμα)

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
['Η Άννα καταναλώνει ', ' θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει ', ' θερμίδες']
['Η Άννα καταναλώνει ', ' θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει ', ' θερμίδες']
['Η Άννα καταναλώνει ', ' θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει ', ' θερμίδες']

Μπορείτε να ελέγξετε τον αριθμό των επαναλήψεων προσδιορίζοντας την παράμετρο maxsplit:

Παράδειγμα
Διαχωρίστε το κείμενο μόνο στην πρώτη αντιστοιχία:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"\d+"
αποτέλεσμα = re.split(συνθήκη, κείμενο, maxsplit=1)
print(αποτέλεσμα)
import re κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες" συνθήκη = r"\d+" αποτέλεσμα = re.split(συνθήκη, κείμενο, maxsplit=1) print(αποτέλεσμα)
import re

κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"\d+"

αποτέλεσμα = re.split(συνθήκη, κείμενο, maxsplit=1)

print(αποτέλεσμα)

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
['Η Άννα καταναλώνει ', ' θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες']
['Η Άννα καταναλώνει ', ' θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες']
['Η Άννα καταναλώνει ', ' θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες']

Η συνάρτηση sub() αντικαθιστά τις αντιστοιχίες με το κείμενο της επιλογής σας:

[adinserter block=”3″]

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"\d+"
αντικατάσταση = "X"
αποτέλεσμα = re.sub(συνθήκη, αντικατάσταση, κείμενο)
print(αποτέλεσμα)
import re κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες" συνθήκη = r"\d+" αντικατάσταση = "X" αποτέλεσμα = re.sub(συνθήκη, αντικατάσταση, κείμενο) print(αποτέλεσμα)
import re

κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες"
συνθήκη = r"\d+"

αντικατάσταση = "X"

αποτέλεσμα = re.sub(συνθήκη, αντικατάσταση, κείμενο)

print(αποτέλεσμα)

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
'Η Άννα καταναλώνει X θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει X θερμίδες'
'Η Άννα καταναλώνει X θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει X θερμίδες'
'Η Άννα καταναλώνει X θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει X θερμίδες'

Μπορείτε να ελέγξετε τον αριθμό των αντικαταστάσεων καθορίζοντας την παράμετρο count:

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες και ο Νίκος 2000 θερμίδες"
συνθήκη = r"\d+"
αντικατάσταση = "X"
αποτέλεσμα = re.sub(συνθήκη, αντικατάσταση, κείμενο, count=2)
print(αποτέλεσμα)
import re κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες και ο Νίκος 2000 θερμίδες" συνθήκη = r"\d+" αντικατάσταση = "X" αποτέλεσμα = re.sub(συνθήκη, αντικατάσταση, κείμενο, count=2) print(αποτέλεσμα)
import re

κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει 3000 θερμίδες και ο Νίκος 2000 θερμίδες"
συνθήκη = r"\d+"

αντικατάσταση = "X"

αποτέλεσμα = re.sub(συνθήκη, αντικατάσταση, κείμενο, count=2)

print(αποτέλεσμα)

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
'Η Άννα καταναλώνει X θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει X θερμίδες και ο Νίκος 2000 θερμίδες'
'Η Άννα καταναλώνει X θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει X θερμίδες και ο Νίκος 2000 θερμίδες'
'Η Άννα καταναλώνει X θερμίδες κάθε μέρα, ενώ ο Γιώργος καταναλώνει X θερμίδες και ο Νίκος 2000 θερμίδες'

Ένα αντικείμενο Match είναι ένα αντικείμενο που περιέχει πληροφορίες για την αναζήτηση και το αποτέλεσμα.

Σημείωση: Εάν δεν υπάρχει αντιστοίχιση, η τιμή None θα επιστραφεί αντί για το αντικείμενο Match.

Παράδειγμα:
Κάντε μια αναζήτηση που θα επιστρέψει ένα αντικείμενο Match:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα"
συνθήκη = r"\d+"
αντιστοίχιση = re.search(συνθήκη, κείμενο)
print(αντιστοίχιση)
import re κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα" συνθήκη = r"\d+" αντιστοίχιση = re.search(συνθήκη, κείμενο) print(αντιστοίχιση)
import re

κείμενο = "Η Άννα καταναλώνει 2500 θερμίδες κάθε μέρα"
συνθήκη = r"\d+"

αντιστοίχιση = re.search(συνθήκη, κείμενο)

print(αντιστοίχιση)

Το αποτέλεσμα θα είναι κάτι σαν:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<re.Match object; span=(18, 22), match='2500'>
<re.Match object; span=(18, 22), match='2500'>
<re.Match object; span=(18, 22), match='2500'>

Το αντικείμενο Match έχει ιδιότητες και μεθόδους που χρησιμοποιούνται για να ανακτήσουν πληροφορίες σχετικά με την αναζήτηση και το αποτέλεσμα:

  • .span() επιστρέφει μια πλειάδα που περιέχει τις αρχικές και τις τελικές θέσεις της αντιστοίχισης.
  • .string επιστρέφει το string που περάστηκε στη συνάρτηση
  • .group() επιστρέφει το μέρος του string όπου υπήρξε αντιστοίχιση

Παράδειγμα:
Εκτυπώστε τη θέση (αρχική και τελική θέση) της πρώτης εμφάνισης αντιστοίχισης.

Η κανονική έκφραση αναζητά λέξεις που αρχίζουν με κεφαλαίο “S”:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Σόφια και ο Στέφανος παίζουν στο πάρκο"
συνθήκη = r"\bS\w+"
αντιστοίχιση = re.search(συνθήκη, κείμενο)
αρχή, τέλος = αντιστοίχιση.span()
print(f"Η θέση της αντιστοίχισης: Αρχή {αρχή}, Τέλος {τέλος}")
import re κείμενο = "Η Σόφια και ο Στέφανος παίζουν στο πάρκο" συνθήκη = r"\bS\w+" αντιστοίχιση = re.search(συνθήκη, κείμενο) αρχή, τέλος = αντιστοίχιση.span() print(f"Η θέση της αντιστοίχισης: Αρχή {αρχή}, Τέλος {τέλος}")
import re

κείμενο = "Η Σόφια και ο Στέφανος παίζουν στο πάρκο"
συνθήκη = r"\bS\w+"

αντιστοίχιση = re.search(συνθήκη, κείμενο)

αρχή, τέλος = αντιστοίχιση.span()
print(f"Η θέση της αντιστοίχισης: Αρχή {αρχή}, Τέλος {τέλος}")

Το αποτέλεσμα θα είναι κάτι σαν:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Η θέση της αντιστοίχισης: Αρχή 2, Τέλος 8
Η θέση της αντιστοίχισης: Αρχή 2, Τέλος 8
Η θέση της αντιστοίχισης: Αρχή 2, Τέλος 8

Παράδειγμα:
Εκτυπώστε το string που περάστηκε στη συνάρτηση:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Σόφια και ο Στέφανος παίζουν στο πάρκο"
συνθήκη = r"\bS\w+"
αντιστοίχιση = re.search(συνθήκη, κείμενο)
εισαγωγικό_κείμενο = αντιστοίχιση.string
print(f"Το εισαγωγικό κείμενο είναι: {εισαγωγικό_κείμενο}")
import re κείμενο = "Η Σόφια και ο Στέφανος παίζουν στο πάρκο" συνθήκη = r"\bS\w+" αντιστοίχιση = re.search(συνθήκη, κείμενο) εισαγωγικό_κείμενο = αντιστοίχιση.string print(f"Το εισαγωγικό κείμενο είναι: {εισαγωγικό_κείμενο}")
import re

κείμενο = "Η Σόφια και ο Στέφανος παίζουν στο πάρκο"
συνθήκη = r"\bS\w+"

αντιστοίχιση = re.search(συνθήκη, κείμενο)

εισαγωγικό_κείμενο = αντιστοίχιση.string
print(f"Το εισαγωγικό κείμενο είναι: {εισαγωγικό_κείμενο}")

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Το εισαγωγικό κείμενο είναι: Η Σόφια και ο Στέφανος παίζουν στο πάρκο
Το εισαγωγικό κείμενο είναι: Η Σόφια και ο Στέφανος παίζουν στο πάρκο
Το εισαγωγικό κείμενο είναι: Η Σόφια και ο Στέφανος παίζουν στο πάρκο

Παράδειγμα:
Εκτυπώστε το τμήμα του string όπου υπήρξε αντιστοίχιση.

Η κανονική έκφραση αναζητά λέξεις που ξεκινούν με κεφαλαίο “S”:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import re
κείμενο = "Η Σόφια και ο Στέφανος παίζουν στο πάρκο"
συνθήκη = r"\bS\w+"
αντιστοίχιση = re.search(συνθήκη, κείμενο)
τμήμα_αντιστοίχισης = αντιστοίχιση.group()
print(f"Το τμήμα της αντιστοίχισης είναι: {τμήμα_αντιστοίχισης}")
import re κείμενο = "Η Σόφια και ο Στέφανος παίζουν στο πάρκο" συνθήκη = r"\bS\w+" αντιστοίχιση = re.search(συνθήκη, κείμενο) τμήμα_αντιστοίχισης = αντιστοίχιση.group() print(f"Το τμήμα της αντιστοίχισης είναι: {τμήμα_αντιστοίχισης}")
import re

κείμενο = "Η Σόφια και ο Στέφανος παίζουν στο πάρκο"
συνθήκη = r"\bS\w+"

αντιστοίχιση = re.search(συνθήκη, κείμενο)

τμήμα_αντιστοίχισης = αντιστοίχιση.group()
print(f"Το τμήμα της αντιστοίχισης είναι: {τμήμα_αντιστοίχισης}")

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Το τμήμα της αντιστοίχισης είναι: Σόφια
Το τμήμα της αντιστοίχισης είναι: Σόφια
Το τμήμα της αντιστοίχισης είναι: Σόφια

Δωρεα μεσω Paypal

Για την κάλυψη αναγκών φιλοξενίας και δημιουργίας περιεχομένου.

κατηγοριες μαθηματων

Ιστορικο ενοτητων

top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων