Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan padanan bertindih dengan ungkapan biasa python
Artikel ini membawa anda pengetahuan yang berkaitan tentang Python terutamanya cara ungkapan biasa python melaksanakan padanan bertindih. Mari kita lihat bersama-sama adalah membantu.
[Cadangan berkaitan: Tutorial video Python3]
import regex string = '100101010001' str_re = '101' print(regex.findall(str_re, string, overlapped=True))
Padanan perpustakaan semula biasa hanya boleh memadankan satu '101'.
Ungkapan biasa boleh difahami sebagai ungkapan untuk menapis data, iaitu bilangan atom yang terhad dan metakarakter.
Atom: Unit asas, setiap ungkapan mempunyai sekurang-kurangnya satu atom
Aksara biasa membentuk atom | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#普通字符组成原子 pat1 = "abcd" #非打印字符组成原子 pat2 = "\n" #通用字符做原子 pat3 = "\w" #原子表组成原子 pat4 = "py[abc]" #可以匹配pya,pyb,pyc,但匹配pyab等原子表重复出现的情况失败 #原子表开头带 ^ 表示取反 pat5 = "py[^abc]" #第三个位置匹配除了a,b,c外的任意一个字符 (Aksara tidak dicetak pada jadual output) |
n: suapan baris
|
||||||||||||||||||||||||||||||
Watak universal membentuk atom |
w: Memadankan mana-mana huruf, nombor dan garis bawahW: Lawan wd: Memadankan mana-mana nombor perpuluhan
D: Bertentangan ds: Memadankan mana-mana aksara ruang putih, seperti ruang, baris baharu, indenS: Bertentangan dengan s |
||||||||||||||||||||||||||||||
Jadual atom terdiri daripada atom | Sekumpulan atom membentuk jadual, diisytiharkan oleh []Keutamaan atom dalam jadual adalah sama, tetapi kandungannya hanya Urutan kejadian Jika jadual atom bermula dengan ^, ia bermakna penolakan |
re.search(pat, str[, flag])
Watak dengan makna istimewa dalam ungkapan biasaimport re str = 'python' pat = 'pytho[a-n]' print(re.search(pat, str))
re.match(pat, str[, flag])
import re str_1 = 'hello world' str_2 = 'world hello' pat = 'world' print(re.match(pat, str_1)) print(re.match(pat, str_2))
re.complie(pat[, flag])
Padanan biasafindall(str[, pos[, endpos]])
re.complie(pat).findall(str)
import re str = "hello world hello world hello world" pat = "hello" print(re.complie(pat).findall(str)) print(re.complie(pat).findall(str, 5, 15))
re.sub(pat, repl, str[, count[, flag]])
import re str = "400-823-823" pat = "-" #短横改空格,最大替换次数2 str_new = re.sub(pat, " ", str, count=2): imbas kedudukan permulaan rentetan str dan kembalikan kedudukan daripada pat (th (perlawanan yang berjaya), bendera digunakan untuk mengawal kaedah pemadanan ungkapan biasa [jika ia tidak sepadan pada mulanya, ia akan tamat dan tiada kembali] : fungsi pemadanan global, sepadan dengan semua subrentetan dalam str yang sepadan dengan pat, memuatkan senarai dan mengembalikan hasilnya : Gantikan item yang sepadan dalam rentetan [data bersih], anda boleh menggunakan kiraan untuk menentukan bilangan maksimum penggantian [Cadangan berkaitan : Tutorial video Python3]
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan padanan bertindih dengan ungkapan biasa python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!