Bagaimana untuk melaksanakan padanan bertindih dengan ungkapan biasa python

WBOY
Lepaskan: 2022-07-25 17:20:44
ke hadapan
3157 orang telah melayarinya

Artikel ini membawa anda pengetahuan yang berkaitan tentang Python terutamanya cara ungkapan biasa python melaksanakan padanan bertindih. Mari kita lihat bersama-sama adalah membantu.

Bagaimana untuk melaksanakan padanan bertindih dengan ungkapan biasa python

[Cadangan berkaitan: Tutorial video Python3]

Ungkapan biasa untuk melaksanakan padanan bertindih

import regex
string = '100101010001'
str_re = '101'
print(regex.findall(str_re, string, overlapped=True))
Salin selepas log masuk

Padanan perpustakaan semula biasa hanya boleh memadankan satu '101'.

Ungkapan biasa dan padanan biasa

Ungkapan biasa

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

< tr class="firstRow">< /tr>
Aksara biasa membentuk atom
普通字符组成原子

非打印字符组成原子

(不打印在输出台的字符)

n:换行

t:tab退格符

通用字符组成原子

w:匹配任意字母、数字、下划线

W:与w相反

d:匹配任意十进制数

D:与d相反

s:匹配任意空白字符,如空格、换行、缩进

S:与s相反

原子表组成原子

一组原子组成一个表,由[]声明

表内原子优先级相等,但内容只出现依次

若原子表以 ^ 开头,则表示取反

Aksara bukan cetakan membentuk atom
#普通字符组成原子
pat1 = "abcd"
 
#非打印字符组成原子
pat2 = "\n"
 
#通用字符做原子
pat3 = "\w"
 
#原子表组成原子
pat4 = "py[abc]"
#可以匹配pya,pyb,pyc,但匹配pyab等原子表重复出现的情况失败
 
#原子表开头带 ^ 表示取反
pat5 = "py[^abc]"
#第三个位置匹配除了a,b,c外的任意一个字符
Salin selepas log masuk

(Aksara tidak dicetak pada jadual output)

n: suapan baris

.匹配任意字符,除了换行符
^匹配字符串开始的位置
$匹配字符串结束的位置,当出现多组符合的匹配时,返回字符串最后的那组匹配
*匹配 0,1,n 次前面的原子【贪婪模式:尽可能多的匹配】
?匹配 0,1 次前面的原子【懒惰模式:精确匹配】
匹配 1,n 次前面的原子
{ j }前面的原子出现 j 次
{ j , }前面的原子至少出现 j 次
{ j , k }前面的原子至少出现 j 次,至多出现 k 次
i | j匹配 i 或 j ,若 i 与 j 同时出现,匹配 i
( )组,限制这组数据的组合如()内所描述一样,只返回符合括号内描述的内容
t: ruang belakang tab

Watak universal membentuk atomw: Memadankan mana-mana huruf, nombor dan garis bawah

W: Lawan w

d: Memadankan mana-mana nombor perpuluhan
re.I匹配时忽略大小写
re.M多行匹配
re.L本地化识别匹配
re.U根据unicon字符匹配,影响w W
re.S匹配包括换行符

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

  • aksara meta: re.search(pat, str[, flag])Watak dengan makna istimewa dalam ungkapan biasa
import re
str = &#39;python&#39;
pat = &#39;pytho[a-n]&#39;
print(re.search(pat, str))
Salin selepas log masuk
    Pengubah suai corak
  • re.match(pat, str[, flag])
  • ialah parameter pada kedudukan bendera dalam fungsi, tanpa mengubah ungkapan biasa Dalam sesetengah kes, tukar maknanya dan laraskan hasil yang sepadan.
import re
str_1 = &#39;hello world&#39;
str_2 = &#39;world hello&#39;
pat = &#39;world&#39;
print(re.match(pat, str_1))
print(re.match(pat, str_2))
Salin selepas log masuk
  • re.complie(pat[, flag])Padanan biasa
  • findall(str[, pos[, endpos]])
  • Ungkapan biasa ialah padanan kabur pada rentetan, salah satunya digunakan sebagai rentetan biasa perlawanan. Padanan biasa ialah teknologi yang digunakan oleh perangkak python untuk mengekstrak maklumat sasaran daripada maklumat teks yang dirangkak. re.complie(pat).findall(str)
Fungsi yang biasa digunakan untuk pemadanan biasa: (panggil modul ungkapan biasa semula)
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))
Salin selepas log masuk
  • re.sub(pat, repl, str[, count[, flag]])
  • : Imbas rentetan str dan kembalikan kedudukan tepuk (th berjaya dipadankan), bendera digunakan untuk mengawal kaedah pemadanan ungkapan biasa
import re
str = "400-823-823"
pat = "-"
#短横改空格,最大替换次数2
str_new = re.sub(pat, " ", str, count=2)
Salin selepas log masuk

: 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!

Label berkaitan:
sumber:jb51.net
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!