Jadual Kandungan
Apakah itu ungkapan biasa
Beberapa contoh ungkapan biasa:
Cari perkataan dalam rentetan
Menjana lelaran
将单词与模式匹配
匹配一系列字符范围
替换字符串:
反斜杠问题
匹配单个字符
删除换行符
正则表达式的实际例子
电话号码验证
电子邮件验证
网页抓取
Rumah pembangunan bahagian belakang Tutorial Python Saya telah menyusun beberapa ungkapan biasa Python, anda boleh mengambilnya dan menggunakannya!

Saya telah menyusun beberapa ungkapan biasa Python, anda boleh mengambilnya dan menggunakannya!

Apr 14, 2023 pm 06:07 PM
python ungkapan biasa

Saya telah menyusun beberapa ungkapan biasa Python, anda boleh mengambilnya dan menggunakannya!

Ekspresi biasa boleh digunakan untuk mencari, mengedit dan memanipulasi teks. Python RegEx digunakan secara meluas oleh hampir semua syarikat dan mempunyai daya tarikan industri yang baik untuk aplikasi mereka, menjadikan ungkapan biasa semakin penting.

Hari ini kita akan belajar ungkapan biasa Python bersama-sama.

Mengapa menggunakan ungkapan biasa.

Untuk menjawab soalan ini, mari kita lihat dahulu pelbagai masalah yang kita hadapi yang boleh diselesaikan dengan menggunakan ungkapan biasa.

Pertimbangkan senario berikut:

Pada penghujung artikel, terdapat fail log yang mengandungi sejumlah besar data Daripada fail log ini, anda hanya ingin mendapatkan tarikh dan masa . Pada pandangan pertama, kebolehbacaan fail log adalah sangat rendah.

Saya telah menyusun beberapa ungkapan biasa Python, anda boleh mengambilnya dan menggunakannya!


Dalam kes ini, ungkapan biasa boleh digunakan untuk mengenal pasti corak dan mengekstrak maklumat yang diperlukan dengan mudah.

Pertimbangkan senario seterusnya: anda seorang jurujual dan mempunyai banyak alamat e-mel, kebanyakannya adalah palsu/tidak sah, lihat imej di bawah:

Saya telah menyusun beberapa ungkapan biasa Python, anda boleh mengambilnya dan menggunakannya!

Apa yang boleh kami lakukan ialah menggunakan ungkapan biasa yang boleh mengesahkan format alamat e-mel dan menapis ID palsu daripada ID sebenar.

Senario seterusnya sangat serupa dengan contoh jurujual, pertimbangkan imej berikut:

Saya telah menyusun beberapa ungkapan biasa Python, anda boleh mengambilnya dan menggunakannya!

Bagaimanakah kita boleh mengesahkan nombor telefon dan kemudian membandingkannya berdasarkan negara asal Kelaskan?

Setiap nombor yang betul akan mempunyai corak tertentu yang boleh dikesan dan dijejaki dengan menggunakan ungkapan biasa.

Seterusnya ialah satu lagi senario mudah:

Kami mempunyai pangkalan data pelajar dengan butiran seperti nama, umur dan alamat. Pertimbangkan situasi di mana kod daerah pada asalnya ialah 59006 tetapi kini telah ditukar kepada 59076, situasi di mana mengemas kini kod ini secara manual untuk setiap pelajar akan memakan masa yang lama dan prosesnya sangat panjang.

Pada asasnya, untuk menyelesaikan masalah ini menggunakan ungkapan biasa, kami mula-mula mencari rentetan tertentu daripada data pelajar yang mengandungi kod pin dan kemudian menggantikan semuanya dengan rentetan baharu.

Apakah itu ungkapan biasa

Ungkapan biasa digunakan untuk mengenal pasti corak carian dalam rentetan teks, ia juga membantu dalam mengetahui ketepatan data dan juga boleh dilakukan menggunakan ungkapan biasa Operasi seperti mencari, menggantikan dan memformat data.

Pertimbangkan contoh berikut:

Saya telah menyusun beberapa ungkapan biasa Python, anda boleh mengambilnya dan menggunakannya!

Daripada semua data untuk rentetan tertentu, dengan mengandaikan kami hanya mahu bandar, ini boleh ditukar dalam format yang cara ke Kamus yang mengandungi hanya nama dan bandar. Persoalannya sekarang, bolehkah kita mengenal pasti corak untuk meneka nama dan bandar? Juga kita boleh mengetahui umur, semakin meningkat usia, mudah, bukan? Ia hanya integer.

Apa yang kita lakukan dengan nama ini? Jika dilihat pada coraknya, semua nama bermula dengan huruf besar. Dengan bantuan ungkapan biasa, kita boleh mengenal pasti nama dan umur menggunakan kaedah ini.

Kita boleh menggunakan kod berikut

import re
Nameage = '''
Janice is 22 and Theon is 33
Gabriel is 44 and Joey is 21
'''
ages = re.findall(r'd{1,3}', Nameage)
names = re.findall(r'[A-Z][a-z]*',Nameage)
ageDict = {}
x = 0
for eachname in names
ageDict[eachname] = ages[x]
x+=1
print(ageDict)
Salin selepas log masuk

Output:

{'Janice': '22', 'Theon': '33', 'Gabriel': '44', 'Joey': '21'}
Salin selepas log masuk

Beberapa contoh ungkapan biasa:

Anda boleh melakukan banyak operasi menggunakan ungkapan biasa. Di sini saya telah menyenaraikan beberapa perkara yang sangat penting untuk membantu lebih memahami penggunaan ungkapan biasa.

Mari kita semak dahulu cara mencari perkataan tertentu dalam rentetan

Cari perkataan dalam rentetan

import re
if re.search("inform","we need to inform him with the latest information"):
print("There is inform")
Salin selepas log masuk

Apa yang kita ada di sini Apa yang dilakukannya ialah mencari perkataan inform untuk hadir dalam rentetan carian kami.

Sudah tentu kami juga boleh mengoptimumkan kod berikut

import re
allinform = re.findall("inform","We need to inform him with the latest information!")
for i in allinform:
print(i)
Salin selepas log masuk

Di sini, dalam kes ini, maklumat akan ditemui dua kali. Satu datang daripada maklumat dan satu lagi datang daripada maklumat.

Seperti yang ditunjukkan di atas, mencari perkataan dalam ungkapan biasa adalah semudah itu.

Seterusnya kita akan belajar cara menjana iterator menggunakan ungkapan biasa.

Menjana lelaran

Menjana lelaran ialah proses mudah mencari dan menyasarkan indeks permulaan dan penamat rentetan. Pertimbangkan contoh berikut:

import re
Str = "we need to inform him with the latest information"
for i in re.finditer("inform.", Str
locTuple = i.span()
print(locTuple)
Salin selepas log masuk

Untuk setiap perlawanan yang ditemui, indeks mula dan tamat dicetak. Apabila kita melaksanakan program di atas, output adalah seperti berikut:

(11, 18)
(38, 45)
Salin selepas log masuk

Seterusnya kita akan menyemak cara memadankan perkataan dengan corak menggunakan ungkapan biasa.

将单词与模式匹配

考虑一个输入字符串,我们必须将某些单词与该字符串匹配。要详细说明,请查看以下示例代码:

import re
Str = "Sat, hat, mat, pat"
allStr = re.findall("[shmp]at", Str)
for i in allStr:
print(i)
Salin selepas log masuk

字符串中有什么共同点?可以看到字母“a”和“t”在所有输入字符串中都很常见。代码中的 [shmp] 表示要查找的单词的首字母,因此,任何以字母 s、h、m 或 p 开头的子字符串都将被视为匹配,其中任何一个,并且最后必须跟在“at”后面。

Output:

hat
mat
pat
Salin selepas log masuk

接下来我们将检查如何使用正则表达式一次匹配一系列字符。

匹配一系列字符范围

我们希望输出第一个字母应该在 h 和 m 之间并且必须紧跟 at 的所有单词。看看下面的例子,我们应该得到的输出是 hat 和 mat

import re
Str = "sat, hat, mat, pat"
someStr = re.findall("[h-m]at", Str)
for i in someStr:
print(i)
Salin selepas log masuk

Output:

hat
mat
Salin selepas log masuk

现在让我们稍微改变一下上面的程序以获得一个不同的结果

import re
Str = "sat, hat, mat, pat"
someStr = re.findall("[^h-m]at", Str)
for i in someStr:
print(i)
Salin selepas log masuk

发现细微差别了吗,我们在正则表达式中添加了插入符号 (^),它的作用否定了它所遵循的任何效果。我们不会给出从 h 到 m 开始的所有内容的输出,而是会向我们展示除此之外的所有内容的输出。

我们可以预期的输出是不以 h 和 m 之间的字母开头但最后仍然紧随其后的单词。Output:

sat
pat
Salin selepas log masuk

替换字符串:

接下来,我们可以使用正则表达式检查另一个操作,其中我们将字符串中的一项替换为其他内容:

import re
Food = "hat rat mat pat"
regex = re.compile("[r]at")
Food = regex.sub("food", Food)
print(Food)
Salin selepas log masuk

在上面的示例中,单词 rat 被替换为单词 food。正则表达式的替代方法就是利用这种情况,它也有各种各样的实际用例。Output:

hat food mat pat
Salin selepas log masuk

反斜杠问题

import re
randstr = "Here is Edureka"
print(randstr)
Salin selepas log masuk

Output:

Here is Edureka
Salin selepas log masuk

这就是反斜杠问题,其中一个斜线从输出中消失了,这个特殊问题可以使用正则表达式来解决。

import re
randstr = "Here is Edureka"
print(re.search(r"Edureka", randstr))
Salin selepas log masuk

Output:

<re.Match object; span=(8, 16), match='Edureka'>
Salin selepas log masuk

这就是使用正则表达式解决反斜杠问题的简单方法。

匹配单个字符

使用正则表达式可以轻松地单独匹配字符串中的单个字符

import re
randstr = "12345"
print("Matches: ", len(re.findall("d{5}", randstr)))
Salin selepas log masuk

Output:

Matches: 1
Salin selepas log masuk

删除换行符

我们可以在 Python 中使用正则表达式轻松删除换行符

import re
randstr = '''
You Never
Walk Alone
Liverpool FC
'''
print(randstr)
regex = re.compile("
")
randstr = regex.sub(" ", randstr)
print(randstr)
Salin selepas log masuk

Output:

You Never
Walk Alone
Liverpool FC
You Never Walk Alone Liverpool FC
Salin selepas log masuk

可以从上面的输出中看到,新行已被空格替换,并且输出打印在一行上。

还可以使用许多其他东西,具体取决于要替换字符串的内容

: Backspace
: Formfeed
: Carriage Return
: Tab
: Vertical Tab
Salin selepas log masuk

可以使用如下代码

import re
randstr = "12345"
print("Matches:", len(re.findall("d", randstr)))
Salin selepas log masuk

Output:

Matches: 5
Salin selepas log masuk

从上面的输出可以看出,d 匹配字符串中存在的整数。但是,如果我们用 D 替换它,它将匹配除整数之外的所有内容,与 d 完全相反。

接下来我们了解一些在 Python 中使用正则表达式的重要实际例子。

正则表达式的实际例子

我们将检查使用最为广泛的 3 个主要用例

  • 电话号码验证
  • 电子邮件地址验证
  • 网页抓取

电话号码验证

需要在任何相关场景中轻松验证电话号码

考虑以下电话号码:

  • 444-122-1234
  • 123-122-78999
  • 111-123-23
  • 67-7890-2019

电话号码的一般格式如下:

  • 以 3 位数字和“-”符号开头
  • 3 个中间数字和“-”号
  • 最后4位数

我们将在下面的示例中使用 w,请注意 w = [a-zA-Z0-9_]

import re
phn = "412-555-1212"
if re.search("w{3}-w{3}-w{4}", phn):
print("Valid phone number")
Salin selepas log masuk

Output:

Valid phone number
Salin selepas log masuk

电子邮件验证

在任何情况下验证电子邮件地址的有效性。

考虑以下电子邮件地址示例:

  • Anirudh@gmail.com
  • Anirudh@com
  • AC.com
  • 123 @.com

我们只需一眼就可以从无效的邮件 ID 中识别出有效的邮件 ID,但是当我们的程序为我们做这件事时,却并没有那么容易,但是使用正则,就非常简单了。

指导思路,所有电子邮件地址应包括:

  • 1 到 20 个小写和/或大写字母、数字以及 . _ % +
  • 一个@符号
  • 2 到 20 个小写和大写字母、数字和加号
  • 一个点号
  • 2 到 3 个小写和大写字母

import re
email = "ac@aol.com md@.com @seo.com dc@.com"
print("Email Matches: ", len(re.findall("[w._%+-]{1,20}@[w.-]{2,20}.[A-Za-z]{2,3}", email)))
Salin selepas log masuk

Output:

Email Matches: 1
Salin selepas log masuk

从上面的输出可以看出,我们输入的 4 封电子邮件中有一封有效的邮件。

这基本上证明了使用正则表达式并实际使用它们是多么简单和高效。

网页抓取

从网站上删除所有电话号码以满足需求。

要了解网络抓取,请查看下图:

Saya telah menyusun beberapa ungkapan biasa Python, anda boleh mengambilnya dan menggunakannya!

我们已经知道,一个网站将由多个网页组成,我们需要从这些页面中抓取一些信息。

网页抓取主要用于从网站中提取信息,可以将提取的信息以 XML、CSV 甚至 MySQL 数据库的形式保存,这可以通过使用 Python 正则表达式轻松实现。

import urllib.request
from re import findall
url = "http://www.summet.com/dmsi/html/codesamples/addresses.html"
response = urllib.request.urlopen(url)
html = response.read()
htmlStr = html.decode()
pdata = findall("(d{3}) d{3}-d{4}", htmlStr)
for item in pdata:
print(item)
Salin selepas log masuk

Output:

(257) 563-7401
(372) 587-2335
(786) 713-8616
(793) 151-6230
(492) 709-6392
(654) 393-5734
(404) 960-3807
(314) 244-6306
(947) 278-5929
(684) 579-1879
(389) 737-2852
...
Salin selepas log masuk

我们首先是通过导入执行网络抓取所需的包,最终结果包括作为使用正则表达式完成网络抓取的结果而提取的电话号码。

Atas ialah kandungan terperinci Saya telah menyusun beberapa ungkapan biasa Python, anda boleh mengambilnya dan menggunakannya!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah sebab mengapa PS terus menunjukkan pemuatan? Apakah sebab mengapa PS terus menunjukkan pemuatan? Apr 06, 2025 pm 06:39 PM

PS "Memuatkan" Masalah disebabkan oleh akses sumber atau masalah pemprosesan: Kelajuan bacaan cakera keras adalah perlahan atau buruk: Gunakan CrystaldiskInfo untuk memeriksa kesihatan cakera keras dan menggantikan cakera keras yang bermasalah. Memori yang tidak mencukupi: Meningkatkan memori untuk memenuhi keperluan PS untuk imej resolusi tinggi dan pemprosesan lapisan kompleks. Pemandu kad grafik sudah lapuk atau rosak: Kemas kini pemandu untuk mengoptimumkan komunikasi antara PS dan kad grafik. Laluan fail terlalu panjang atau nama fail mempunyai aksara khas: Gunakan laluan pendek dan elakkan aksara khas. Masalah PS sendiri: Pasang semula atau membaiki pemasang PS.

Bagaimana menyelesaikan masalah pemuatan apabila PS dimulakan? Bagaimana menyelesaikan masalah pemuatan apabila PS dimulakan? Apr 06, 2025 pm 06:36 PM

PS yang tersangkut pada "memuatkan" apabila boot boleh disebabkan oleh pelbagai sebab: Lumpuhkan plugin yang korup atau bercanggah. Padam atau namakan semula fail konfigurasi yang rosak. Tutup program yang tidak perlu atau menaik taraf memori untuk mengelakkan memori yang tidak mencukupi. Naik taraf ke pemacu keadaan pepejal untuk mempercepatkan bacaan cakera keras. Pasang semula PS untuk membaiki fail sistem rasuah atau isu pakej pemasangan. Lihat maklumat ralat semasa proses permulaan analisis log ralat.

Bagaimana untuk menyelesaikan masalah pemuatan apabila PS membuka fail? Bagaimana untuk menyelesaikan masalah pemuatan apabila PS membuka fail? Apr 06, 2025 pm 06:33 PM

"Memuatkan" gagap berlaku apabila membuka fail pada PS. Sebab-sebabnya mungkin termasuk: fail yang terlalu besar atau rosak, memori yang tidak mencukupi, kelajuan cakera keras perlahan, masalah pemacu kad grafik, versi PS atau konflik plug-in. Penyelesaiannya ialah: Semak saiz fail dan integriti, tingkatkan memori, menaik taraf cakera keras, mengemas kini pemacu kad grafik, menyahpasang atau melumpuhkan pemalam yang mencurigakan, dan memasang semula PS. Masalah ini dapat diselesaikan dengan berkesan dengan memeriksa secara beransur -ansur dan memanfaatkan tetapan prestasi PS yang baik dan membangunkan tabiat pengurusan fail yang baik.

Cara Menggunakan MySQL Selepas Pemasangan Cara Menggunakan MySQL Selepas Pemasangan Apr 08, 2025 am 11:48 AM

Artikel ini memperkenalkan operasi pangkalan data MySQL. Pertama, anda perlu memasang klien MySQL, seperti MySqlworkbench atau Command Line Client. 1. Gunakan perintah MySQL-Uroot-P untuk menyambung ke pelayan dan log masuk dengan kata laluan akaun root; 2. Gunakan CreateTatabase untuk membuat pangkalan data, dan gunakan Pilih pangkalan data; 3. Gunakan createtable untuk membuat jadual, menentukan medan dan jenis data; 4. Gunakan InsertInto untuk memasukkan data, data pertanyaan, kemas kini data dengan kemas kini, dan padam data dengan padam. Hanya dengan menguasai langkah -langkah ini, belajar menangani masalah biasa dan mengoptimumkan prestasi pangkalan data anda boleh menggunakan MySQL dengan cekap.

Bagaimanakah Feathering PS mengawal kelembutan peralihan? Bagaimanakah Feathering PS mengawal kelembutan peralihan? Apr 06, 2025 pm 07:33 PM

Kunci kawalan bulu adalah memahami sifatnya secara beransur -ansur. PS sendiri tidak menyediakan pilihan untuk mengawal lengkung kecerunan secara langsung, tetapi anda boleh melaraskan radius dan kelembutan kecerunan dengan pelbagai bulu, topeng yang sepadan, dan pilihan halus untuk mencapai kesan peralihan semula jadi.

Adakah Mysql perlu membayar Adakah Mysql perlu membayar Apr 08, 2025 pm 05:36 PM

MySQL mempunyai versi komuniti percuma dan versi perusahaan berbayar. Versi komuniti boleh digunakan dan diubahsuai secara percuma, tetapi sokongannya terhad dan sesuai untuk aplikasi dengan keperluan kestabilan yang rendah dan keupayaan teknikal yang kuat. Edisi Enterprise menyediakan sokongan komersil yang komprehensif untuk aplikasi yang memerlukan pangkalan data yang stabil, boleh dipercayai, berprestasi tinggi dan bersedia membayar sokongan. Faktor yang dipertimbangkan apabila memilih versi termasuk kritikal aplikasi, belanjawan, dan kemahiran teknikal. Tidak ada pilihan yang sempurna, hanya pilihan yang paling sesuai, dan anda perlu memilih dengan teliti mengikut keadaan tertentu.

Cara mengoptimumkan prestasi pangkalan data selepas pemasangan MySQL Cara mengoptimumkan prestasi pangkalan data selepas pemasangan MySQL Apr 08, 2025 am 11:36 AM

Pengoptimuman prestasi MySQL perlu bermula dari tiga aspek: konfigurasi pemasangan, pengindeksan dan pengoptimuman pertanyaan, pemantauan dan penalaan. 1. Selepas pemasangan, anda perlu menyesuaikan fail my.cnf mengikut konfigurasi pelayan, seperti parameter innodb_buffer_pool_size, dan tutup query_cache_size; 2. Buat indeks yang sesuai untuk mengelakkan indeks yang berlebihan, dan mengoptimumkan pernyataan pertanyaan, seperti menggunakan perintah menjelaskan untuk menganalisis pelan pelaksanaan; 3. Gunakan alat pemantauan MySQL sendiri (ShowProcessList, ShowStatus) untuk memantau kesihatan pangkalan data, dan kerap membuat semula dan mengatur pangkalan data. Hanya dengan terus mengoptimumkan langkah -langkah ini, prestasi pangkalan data MySQL diperbaiki.

Apa yang perlu saya lakukan jika kad PS berada di antara muka pemuatan? Apa yang perlu saya lakukan jika kad PS berada di antara muka pemuatan? Apr 06, 2025 pm 06:54 PM

Antara muka pemuatan kad PS mungkin disebabkan oleh perisian itu sendiri (fail rasuah atau konflik plug-in), persekitaran sistem (pemacu yang wajar atau fail sistem rasuah), atau perkakasan (rasuah cakera keras atau kegagalan tongkat memori). Pertama semak sama ada sumber komputer mencukupi, tutup program latar belakang dan lepaskan memori dan sumber CPU. Betulkan pemasangan PS atau periksa isu keserasian untuk pemalam. Mengemas kini atau menewaskan versi PS. Semak pemacu kad grafik dan kemas kini, dan jalankan semak fail sistem. Jika anda menyelesaikan masalah di atas, anda boleh mencuba pengesanan cakera keras dan ujian memori.

See all articles