Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Ungkapan Biasa
Regular Expressions
Regular Expressions (kadang-kadang disingkat kepada regexp, regex, atau re) adalah alat untuk memadankan corak dalam teks. Dalam Python, kita mempunyai modul re. Aplikasi untuk ungkapan biasa ini sangat meluas, tetapi mereka agak kompleks, jadi apabila bercadang menggunakan regex untuk sesuatu tugasan, fikirkan tentang alternatif, dan gunakan regex sebagai pilihan terakhir.
Contoh regex adalah r"^(From|To|Cc).*[email protected]"
Sekarang untuk penjelasan:
tanda kare (^) akan memadankan teks pada permulaan baris. Kumpulan berikut, bahagian dengan (From|To|Cc)
bermaksud bahawa baris tersebut mesti bermula dengan salah satu daripada perkataan yang dipisahkan oleh paip |
. Itu dipanggil operator OR, dan regex akan sepadan jika baris bermula dengan mana-mana perkataan dalam kumpulan itu. .*?
bermaksud untuk memadankan sebarang bilangan aksara secara tidak tamak, kecuali aksara baris baharu \n
. Bahagian tidak tamak bermaksud untuk memadankan seberapa sedikit ulangan yang mungkin. Aksara .
bermaksud sebarang aksara bukan baris baharu, *
bermaksud mengulang 0 atau lebih kali, dan aksara ?
menjadikannya tidak tamak.
Jadi, baris berikut akan dipadankan oleh regex tersebut:
From: [email protected]
To: !asp]<,. [email protected]
Rujukan lengkap untuk sintaks re tersedia di python docs.
Sebagai contoh regex pemadanan email yang "sepatutnya" (seperti yang dalam latihan), lihat ini
Exercise--------
# Example:
import re
pattern = re.compile(r"\[(on|off)\]") # Slight optimization
print(re.search(pattern, "Mono: Playback 65 [75%] [-16.50dB] [on]"))
# Returns a Match object!
print(re.search(pattern, "Nada...:-("))
# Doesn't return anything.
# End Example
# Exercise: make a regular expression that will match an email
def test_email(your_pattern):
pattern = re.compile(your_pattern)
emails = ["[email protected]", "[email protected]", "wha.t.`1an?ug{}[email protected]"]
for email in emails:
if not re.match(pattern, email):
print("You failed to match %s" % (email))
elif not your_pattern:
print("Forgot to enter a pattern!")
else:
print("Pass")
pattern = r"" # Your pattern here!
test_email(pattern)
# Exercise: make a regular expression that will match an email
import re
def test_email(your_pattern):
pattern = re.compile(your_pattern)
emails = ["[email protected]", "[email protected]", "wha.t.`1an?ug{}[email protected]"]
for email in emails:
if not re.match(pattern, email):
print("You failed to match %s" % (email))
elif not your_pattern:
print("Forgot to enter a pattern!")
else:
print("Pass")
# Your pattern here!
pattern = r"\"?([-a-zA-Z0-9.`?{}]+@\w+\.\w+)\"?"
test_email(pattern)
test_output_contains("Pass")
success_msg("Great work!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!