Pengenalan pertama kepada ungkapan biasa Python

Ungkapan biasa ialah urutan aksara khas yang digunakan untuk menentukan sama ada rentetan sepadan dengan urutan aksara yang kami tetapkan, iaitu, untuk menyemak sama ada rentetan sepadan dengan corak tertentu.

Python telah menambah modul semula sejak versi 1.5, yang menyediakan corak ekspresi biasa gaya Perl. Modul semula membawa fungsi ekspresi tetap penuh kepada bahasa Python.

Berikut ialah pengenalan langkah demi langkah kepada ungkapan biasa melalui contoh.

Sebagai contoh, untuk mencari sama ada rentetan mengandungi aksara tertentu atau aksara tertentu, kita biasanya menggunakan fungsi terbina dalam untuk mencapai ini, seperti berikut:

# 设定一个常量
a = '两点水|twowater|liangdianshui|草根程序员|ReadingWithU'
# 判断是否有 “两点水” 这个字符串,使用 PY 自带函数
print('是否含有“两点水”这个字符串:{0}'.format(a.index('两点水') > -1))
print('是否含有“两点水”这个字符串:{0}'.format('两点水' in a))

Hasil output adalah seperti berikut:

是否含有“两点水”这个字符串:True
是否含有“两点水”这个字符串:True

Jadi, bagaimana jika kita menggunakan ungkapan biasa?

Seperti yang dinyatakan sebentar tadi, Python membekalkan kita modul semula untuk melaksanakan semua fungsi ungkapan biasa, jadi mari kita gunakan salah satu fungsi dahulu:

re.findall(pattern, string[, flags])

Fungsi ini melaksanakan mencari padanan ungkapan biasa dalam rentetan Semua subrentetan terbentuk ke dalam senarai dan dikembalikan. Operasi khusus adalah seperti berikut:

import re
# 设定一个常量
a = '两点水|twowater|liangdianshui|草根程序员|ReadingWithU'
# 正则表达式
findall = re.findall('两点水', a)
print(findall)
if len(findall) > 0:
    print('a 含有“两点水”这个字符串')
else:
    print('a 不含有“两点水”这个字符串')

Hasil output:

['两点水']
a 含有“两点水”这个字符串

Seperti yang dapat dilihat daripada hasil output, fungsi yang sama seperti fungsi terbina dalam boleh dicapai, tetapi satu perkara harus ditekankan di sini, di atas Contoh itu hanya untuk memudahkan pemahaman kita tentang ungkapan biasa Cara ungkapan biasa ini ditulis tidak bermakna. Kenapa awak cakap begini?

Oleh kerana masalah itu boleh diselesaikan menggunakan fungsi terbina dalam Python, kita tidak perlu menggunakan ungkapan biasa, yang tidak diperlukan. Selain itu, tetapan ungkapan biasa dalam contoh di atas menjadi tetap, bukan peraturan ungkapan biasa Jiwa ungkapan biasa terletak pada peraturan, jadi ini tidak masuk akal.

Jadi bagaimana untuk menulis peraturan ungkapan biasa? Jangan risau, mari kita lakukan langkah demi langkah Mari kita mulakan dengan yang mudah, cari semua huruf kecil dalam rentetan. Mula-mula, kami menulis peraturan ungkapan biasa dalam parameter pertama fungsi findall, di mana [a-z] sepadan dengan mana-mana huruf kecil, dan parameter kedua hanya perlu mengisi rentetan untuk dipadankan. Butirannya adalah seperti berikut:

import re
# 设定一个常量
a = '两点水|twowater|liangdianshui|草根程序员|ReadingWithU'
# 选择 a 里面的所有小写英文字母
re_findall = re.findall('[a-z]', a)
print(re_findall)

Hasil output:

['t', 'w', 'o', 'w', 'a', 't', 'e', 'r', 'l', 'i', 'a', 'n', 'g', 'd', 'i', 'a', 'n', 's', 'h', 'u', 'i', 'e', 'a', 'd', 'i', 'n', 'g', 'i', 't', 'h']

Dengan cara ini, kita mendapat semua huruf kecil dalam rentetan.

Meneruskan pembelajaran
  • Cadangan kursus
  • Muat turun perisian kursus