Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menggunakan ungkapan biasa dalam Python?

Bagaimana untuk menggunakan ungkapan biasa dalam Python?

WBOY
WBOYasal
2023-06-05 10:40:491332semak imbas

Python ialah bahasa pengaturcaraan berkuasa yang menyokong ungkapan biasa untuk manipulasi teks. Memandangkan analisis data dan pemprosesan teks menjadi semakin biasa dalam semua lapisan masyarakat, menguasai kemahiran ungkapan biasa telah menjadi kemahiran asas yang semakin penting. Dalam artikel ini, kita akan belajar cara menggunakan ungkapan biasa dalam Python.

  1. Import modul semula

Menggunakan ungkapan biasa dalam Python memerlukan pengimportan modul semula. Sudah tentu, sebelum menggunakan ungkapan biasa, kita perlu membiasakan diri dengan peraturan sintaks ungkapan biasa. Berikut ialah beberapa simbol ungkapan biasa asas dan maknanya:

符号 含义
. 匹配任意字符,除了换行符
d 匹配数字
D 匹配非数字
w 匹配字母、数字、下划线或汉字
W 匹配除字母、数字、下划线或汉字以外的其他字符
s 匹配任意空白字符,包括空格、制表符、换行符等
S 匹配任意非空白字符
^ 匹配字符串的开头
$ 匹配字符串的结尾
* 匹配 0 次或多次
+ 匹配 1 次或多次
? 匹配 0 次或 1 次
{n} 匹配恰好 n 次
{n,} 匹配n次或更多次
{m,n} 匹配m~n次
[...] 匹配方括号中的任意字符,包括字符范围、排除字符等
(…) 捕获匹配的子字符串
(?:…) 不捕获匹配的子字符串
(?=...) 正向肯定预查
(?!...) 正向否定预查
(?<=...) 反向肯定预查
(? 反向否定预查
  1. Padanan rentetan
    Mari cuba gunakan modul semula untuk pemadanan rentetan ringkas. Sebagai contoh, kami ingin memadankan subrentetan dalam bentuk "hello world" dalam rentetan Kodnya adalah seperti berikut:
import re

# 声明一个字符串
str1 = "hello world"

# 定义正则表达式
pattern = "hello world"

# 使用 re 模块进行匹配
result = re.search(pattern, str1)
print(result.group())

Hasil keluaran:

hello world
  1. Istimewa. aksara

Apabila kita perlu mencari beberapa aksara khas, kita perlu menambah aksara melarikan diri () dalam ungkapan biasa. Contohnya:

  • Cari perkataan yang berakhir dengan kurungan:
# 定义正则表达式
pattern = r"w+($"

# 使用 re 模块进行匹配
result = re.search(pattern, "I have a list (item1, item2).")
print(result.group())

Hasil keluaran:

list(
  • Cari URL yang mengandungi nombor:
# 定义正则表达式
pattern = r"https?://S+.w+(?<!/)$"

# 使用 re 模块进行匹配
result = re.search(pattern, "Here is a link: https://www.google.com.")
print(result.group())

Hasil keluaran:

https://www.google.com
  1. Padankan berbilang subrentetan
    Kadangkala, kita perlu memadankan berbilang subrentetan dalam teks. Dalam kes ini kita boleh menggunakan fungsi findall. Contohnya, jika kita ingin mencari semua alamat e-mel dalam rentetan, kodnya kelihatan seperti ini:
# 定义正则表达式
pattern = r"w+@w+.w{2,3}"

# 使用 re 模块进行匹配
result = re.findall(pattern, "Please contact me at alice@gmail.com or bob@hotmail.com")
print(result)

Hasil keluaran:

['alice@gmail.com', 'bob@hotmail.com']
  1. Ganti rentetan
    Kami Anda juga boleh menggunakan ungkapan biasa untuk menggantikan rentetan dalam Python. Contohnya, untuk menggantikan semua nombor dalam rentetan dengan tanda *, kodnya adalah seperti berikut:
# 定义正则表达式
pattern = r"d"

# 使用 re 模块进行匹配和替换
result = re.sub(pattern, "*", "12345678")
print(result)

Hasil keluaran:

********
  1. Ringkasan
    Dalam artikel ini , kami mempelajari asas menggunakan ungkapan biasa dalam Python. Ingat bahawa ungkapan biasa boleh menjadikan banyak tugas dalam pemprosesan teks lebih mudah. Menguasai asas ungkapan biasa ialah kemahiran penting untuk saintis data, jurutera pembelajaran mesin dan pembangun perisian.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan ungkapan biasa dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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