Ungkapan biasa dalam Python
Pernahkah anda terfikir apakah kunci untuk mencari teks tertentu dalam dokumen atau memastikan teks itu sesuai format tertentu (seperti alamat e-mel) dan operasi lain yang serupa?
Kunci kepada jenis operasi ini ialah ungkapan biasa (regex). Mari kita lihat beberapa definisi ungkapan biasa. Dalam Wikipedia, ungkapan biasa ditakrifkan seperti berikut:
Jujukan aksara yang mentakrifkan corak carian, terutamanya digunakan untuk padanan corak atau padanan rentetan dengan rentetan, iaitu, operasi seperti "cari dan ganti". Konsep ini muncul pada tahun 1950-an, apabila ahli matematik Amerika Stephen Kleene memformalkan perihalan bahasa biasa dan menjadi biasa digunakan dengan utiliti pemprosesan teks Unix ed (editor) dan grep (penapis).Satu lagi takrifan
regular-expressions.info ialah:
Ungkapan biasa (pendek kata regex atau regexp) ialah rentetan teks khas yang digunakan untuk menerangkan corak carian. Anda boleh menganggap ungkapan biasa sebagai kad bebas pada steroid. Anda mungkin biasa dengan tatatanda kad bebas, seperti *.txt, untuk mencari semua fail teks dalam pengurus fail anda. Setara regex ialah .*.txt$
Saya tahu konsep ungkapan biasa mungkin masih kedengaran agak kabur. Jadi, mari kita lihat beberapa contoh ungkapan biasa untuk memahami konsep ini dengan lebih baik.
Contoh Ungkapan Biasa
Dalam bahagian ini, saya akan menunjukkan kepada anda beberapa contoh ungkapan biasa untuk membantu anda memahami konsep ini dengan lebih lanjut.
Andaikan anda mempunyai ungkapan biasa ini:
/abder/
Ini hanya memberitahu kami untuk memadankan hanya perkataan abder
. abder
。
这个正则表达式怎么样?
/a[nr]t/
您可以按如下方式阅读此正则表达式:找到一个文本模式,第一个字母是 a
,最后一个字母是 t
,这些字母之间是 n
或 r
。所以匹配的词是 ant
和 art
。
现在让我给你一个小测验。如何编写以 ca
开头,并以以下一个或全部字符 tbr
结尾的正则表达式?是的,这个正则表达式可以写成如下:
/ca[tbr]/
如果您看到以抑扬音符号 ^
开头的正则表达式,则表示匹配以 ^
之后提到的字符串开头的字符串。因此,如果您有下面的正则表达式,它会匹配以 This
开头的字符串。
/^This/
因此,在以下字符串中:
My name is Abder This is Abder This is Tom
基于正则表达式 /^This/
,将匹配以下字符串:
This is Abder This is Tom
如果我们想要匹配以某个字符串结尾的字符串怎么办?在本例中,我们使用美元符号 $
。这是一个例子:
Abder$
因此,在上面的字符串(三行)中,将使用此正则表达式来匹配以下模式:
My name is Abder This is Abder
那么,您对这个正则表达式有何看法?
^[A-Z][a-z]
我知道乍一看可能看起来很复杂,但让我们一点一点地看一下。
我们已经了解了什么是抑扬音 ^
。这意味着匹配以某个字符串开头的字符串。 [A-Z]
指的是大写字母。因此,如果我们阅读正则表达式的这一部分: ^[A-Z]
,它告诉我们匹配以大写字母开头的字符串。最后一部分 [a-z]
表示找到以大写字母开头的字符串后,后面会跟着字母表中的小写字母。
那么,使用此正则表达式将匹配以下哪些字符串?如果您不确定,您可以使用 Python(我们将在下一节中看到)来测试您的答案。
abder Abder ABDER ABder
正则表达式是一个非常广泛的主题,这些示例只是为了让您了解它们是什么以及我们为什么使用它们。
RexEgg 是了解更多有关正则表达式并查看更多示例的一个很好的参考。
Python 中的正则表达式
现在让我们来看看有趣的部分。我们希望了解如何在 Python 中使用上述一些正则表达式。我们将用来在 Python 中处理正则表达式的模块是 re
模块。
第一个示例是关于查找单词 abder
。在 Python 中,我们将按如下方式执行此操作:
import re text = 'My name is Abder' match_pattern = re.match(r'Abder', text) print match_pattern
如果运行上面的Python脚本,您将得到输出:None
!
该脚本工作得很好,但问题在于函数 match()
的工作方式。如果我们返回 re
模块文档,这就是函数 match()
import re text = 'This is a black ant' match_pattern = re.search(r'a[nr]t', text) print match_pattern.group(0)
a
dan huruf terakhir ialah t< /code>, antara huruf ini ialah <code class="inline">n
atau r
. Jadi perkataan yang sepadan ialah ant
dan art
. 🎜
🎜Sekarang biar saya berikan sedikit kuiz. Bagaimana untuk menulis ungkapan biasa yang bermula dengan ca
dan berakhir dengan satu atau semua aksara berikut tbr
? Ya, ungkapan biasa ini boleh ditulis seperti berikut: 🎜
rrreee
🎜Jika anda melihat ungkapan biasa bermula dengan simbol circumflex ^
, ia bermakna sepadan dengan aksara yang disebut selepas ^
Rentetan di permulaan rentetan. Jadi jika anda mempunyai ungkapan biasa berikut, ia akan sepadan dengan rentetan bermula dengan This
. 🎜
rrreee
🎜Oleh itu, dalam rentetan berikut: 🎜
rrreee
🎜Berdasarkan ungkapan biasa /^This/
, rentetan berikut akan dipadankan: 🎜
rrreee
🎜Bagaimana jika kita ingin memadankan rentetan yang berakhir 🎜 dengan rentetan tertentu 🎜? Dalam contoh ini, kami menggunakan tanda dolar $
. Berikut adalah contoh: 🎜
rrreee
🎜Jadi, dalam rentetan di atas (tiga baris), ungkapan biasa ini akan digunakan untuk memadankan corak berikut: 🎜
rrreee
🎜Jadi, apa pendapat anda tentang ungkapan biasa ini? 🎜
rrreee
🎜Saya tahu ia mungkin kelihatan rumit pada pandangan pertama, tetapi mari kita lihat sedikit demi sedikit. 🎜
🎜Kami telah mempelajari apa itu iambik ^
. Ini bermakna memadankan rentetan yang bermula dengan rentetan tertentu. [A-Z]
merujuk kepada huruf besar. Jadi jika kita membaca bahagian regex ini: ^[A-Z]
, ia memberitahu kita untuk memadankan rentetan yang bermula dengan huruf besar. Bahagian terakhir [a-z]
bermaksud apabila rentetan ditemui yang bermula dengan huruf besar, ia akan diikuti dengan huruf kecil abjad. 🎜
🎜Jadi, yang manakah antara rentetan berikut akan dipadankan menggunakan ungkapan biasa ini? Jika anda tidak pasti, anda boleh menggunakan Python (seperti yang akan kita lihat dalam bahagian seterusnya) untuk menguji jawapan anda. 🎜
rrreee
🎜Ungkapan biasa adalah topik yang sangat luas, contoh ini hanya untuk memberi anda gambaran tentang apa itu dan mengapa kami menggunakannya. 🎜
🎜RexEgg ialah rujukan yang bagus untuk mengetahui lebih lanjut tentang ungkapan biasa dan melihat lebih banyak contoh. 🎜
🎜Ungkapan Biasa dalam Python🎜
🎜Sekarang mari kita ke bahagian yang menyeronokkan. Kami ingin melihat cara menggunakan beberapa ungkapan biasa di atas dalam Python. Modul yang akan kami gunakan untuk mengendalikan ungkapan biasa dalam Python ialah modul re
. 🎜
🎜Contoh pertama ialah tentang mencari perkataan abder
. Dalam Python kita akan melakukan ini seperti berikut: 🎜
rrreee
🎜Jika anda menjalankan skrip Python di atas, anda akan mendapat output: None
!🎜
🎜Skrip berfungsi dengan baik, tetapi masalahnya ialah cara fungsi match()
berfungsi. Jika kita mengembalikan dokumen modul re
, ini adalah fungsi match()
: 🎜
如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。如果字符串与模式不匹配,则返回 None;请注意,这与零长度匹配不同。
啊哈,从这里我们可以看出,match()
仅当在字符串的开头找到匹配项时才会返回结果。
我们可以使用函数 search()
,这是基于文档的:
扫描字符串,查找正则表达式模式产生匹配的第一个位置,并返回相应的匹配对象。如果字符串中没有位置与模式匹配,则返回 None;请注意,这与在字符串中的某个点查找零长度匹配不同。
因此,如果我们编写上面的脚本,但使用 search()
而不是 match()
,我们会得到以下输出:
<_sre.SRE_Match 0x101cfc988 处的对象>
即返回了一个匹配对象
。
如果我们想返回结果(字符串匹配),我们使用 group()
函数。如果我们想查看整个比赛,我们使用 group(0)
。因此:
打印 match_pattern.group(0)
将返回输出:Abder
。
如果我们采用上一节中的第二个正则表达式,即 /a[nr]t/
,则可以用 Python 编写如下:
import re text = 'This is a black ant' match_pattern = re.search(r'a[nr]t', text) print match_pattern.group(0)
此脚本的输出是:ant
。
结论
文章越来越长,Python 中的正则表达式主题即使不是一本书,也肯定需要不止一篇文章。
然而,本文旨在让您快速入门并有信心进入 Python 正则表达式的世界。您可以参考 re
文档来了解有关此模块的更多信息以及如何深入了解该主题。
Atas ialah kandungan terperinci Ungkapan biasa dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ekspresi biasa Python ialah alat padanan yang berkuasa yang boleh membantu kami mengenal pasti dan menggantikan teks, gaya dan format dengan cepat dalam pemprosesan fail Word. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pemprosesan fail Word. 1. Pasang perpustakaan Python-docx Python-docx ialah perpustakaan berfungsi untuk memproses dokumen Word dalam Python Anda boleh menggunakannya untuk membaca, mengubah suai, mencipta dan menyimpan dokumen Word dengan cepat. Sebelum menggunakan Python-docx, anda perlu memastikan

Ungkapan biasa Python ialah alat berkuasa yang membantu kami melakukan pemadanan dan carian yang tepat dan cekap dalam data teks. Ungkapan biasa juga amat berguna dalam pemprosesan nombor dan jumlah, dan boleh mencari dan mengekstrak maklumat nombor dan jumlah dengan tepat. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk memproses nombor dan jumlah, membantu pembaca menangani tugas pemprosesan data sebenar dengan lebih baik. 1. Nombor proses 1. Padankan integer dan nombor titik terapung Dalam ungkapan biasa, untuk memadankan integer dan nombor titik terapung, anda boleh menggunakan d+ untuk padanan.

Ungkapan biasa Python ialah alat yang berkuasa untuk memproses data teks. Dalam pemprosesan bahasa semula jadi, pembahagian perkataan adalah tugas penting, yang memisahkan teks kepada perkataan individu. Dalam Python, kita boleh menggunakan ungkapan biasa untuk menyelesaikan tugas pembahagian perkataan. Berikut akan menggunakan Python3 sebagai contoh untuk memperkenalkan cara menggunakan ungkapan biasa untuk pembahagian perkataan. Import modul semula Modul semula ialah modul ekspresi biasa terbina dalam Python Anda perlu mengimport modul terlebih dahulu. teks definisi import

Dalam orkestrasi kontena, kita selalunya perlu menapis, memadankan dan menggantikan beberapa maklumat. Python menyediakan ungkapan biasa, alat berkuasa yang boleh membantu kami menyelesaikan operasi ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk orkestrasi kontena, termasuk pengetahuan asas ungkapan biasa, cara menggunakan modul Pythonre dan beberapa aplikasi ungkapan biasa biasa. 1. Pengetahuan asas tentang ungkapan biasa Ungkapan biasa (RegularExpression) merujuk kepada corak teks, digunakan

Python ialah bahasa pengaturcaraan peringkat tinggi yang digunakan secara meluas dengan set perpustakaan dan alatan yang kaya yang menjadikan pengekstrakan kandungan lebih mudah dan lebih cekap. Antaranya, ungkapan biasa adalah alat yang sangat penting, dan Python menyediakan modul semula untuk menggunakan ungkapan biasa untuk pengekstrakan kandungan. Artikel ini akan memperkenalkan anda kepada langkah khusus tentang cara menggunakan ungkapan biasa Python untuk pengekstrakan kandungan. 1. Fahami sintaks asas ungkapan biasa Sebelum menggunakan ungkapan biasa Python untuk pengekstrakan kandungan, anda perlu memahami sintaks asas ungkapan biasa.

Ekspresi biasa Python ialah alat pemprosesan rentetan berdasarkan padanan corak, yang boleh membantu kami mengekstrak maklumat yang diperlukan daripada teks dengan cepat dan cekap. Dalam struktur data dan algoritma, ungkapan biasa boleh digunakan untuk melaksanakan pemadanan teks, penggantian, pembahagian dan fungsi lain, memberikan sokongan yang lebih berkuasa untuk pengaturcaraan kami. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma. 1. Pengetahuan asas ungkapan biasa Sebelum bermula, mari kita fahami beberapa pengetahuan asas ungkapan biasa: Set aksara: diwakili oleh kurungan segi empat sama,

Dalam pembangunan perisian, estetika kod dan pengalaman pengguna sering diabaikan, yang membawa kepada banyak masalah perisian dalam penggunaan sebenar. Python, sebagai bahasa pengaturcaraan yang berkuasa, menyediakan ungkapan biasa sebagai alat yang berkuasa untuk membantu kami menyelesaikan masalah ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk estetika kod dan pengalaman pengguna. 1. Pengenalan kepada ungkapan biasa Python Ungkapan biasa ialah bahasa yang menerangkan corak teks dan boleh digunakan untuk memadankan, mencari, menggantikan dan memisahkan teks. Modul semula Python menyediakan

Ekspresi biasa (RegularExpression) ialah alat pemadanan rentetan yang berkuasa Modul semula dalam Python menyediakan sokongan untuk ungkapan biasa. Ungkapan biasa boleh digunakan bukan sahaja untuk pemadanan rentetan, tetapi juga untuk pengaturcaraan reflektif, iaitu memanggil fungsi dan sifat secara dinamik. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pengaturcaraan reflektif. Konsep pantulan Dalam Python, pantulan merujuk kepada memperoleh maklumat objek secara dinamik dan memanggil sifat dan kaedah objek apabila atur cara berjalan. Refleksi boleh berlalu
