Nhóm 0 trong Python là gì?

Trong Hướng dẫn Python này, chúng ta sẽ tìm hiểu về Biểu thức chính quy [hoặc RE, regex] trong Python. Biểu thức chính quy là một ngôn ngữ mạnh mẽ để so khớp các mẫu văn bản

Patrick Loeber · · · · · Ngày 19 tháng 4 năm 2020 · 31 phút đọc

Khóa học về sự cố Python

Biểu thức chính quy [RE, hoặc biểu thức chính quy hoặc mẫu biểu thức chính quy] là một ngôn ngữ mạnh mẽ để so khớp các mẫu văn bản. Ví dụ mẫu có thể cho các tìm kiếm là, e. g. , Địa chỉ email hoặc tên miền. Bài viết này giới thiệu cơ bản về biểu thức chính quy và cho biết cách biểu thức chính quy hoạt động trong Python. Nó sẽ bao gồm tất cả các khái niệm cần thiết

1] Các phương thức tìm kiếm đối sánh
2] Các phương thức trên đối tượng khớp
3] Ký tự meta
4] More special sequences
5] Sets
6] Quantifier
7] Conditions
8] Grouping
9] Examples
10] Modification
11] Compilation flags

Các biểu thức chính quy bên trong Python được cung cấp thông qua mô-đun `re

import re

Sử dụng biểu thức chính quy, bạn chỉ định các quy tắc cho tập hợp các chuỗi có thể mà bạn muốn khớp. Thông thường, trước tiên chúng tôi xác định mẫu mà chúng tôi muốn tìm kiếm và sử dụng

        Hello
    \tHello
2 trên đó. Theo mặc định, mẫu của chúng tôi phân biệt chữ hoa chữ thường

test_string = '123abc456789abc123ABC'
pattern = re.compile[r'abc']

Ghi chú. Nên sử dụng các chuỗi thô để tìm kiếm

## Use raw strings for the search pattern
a = '\tHello'
b = r'\tHello'
print[a]
print[b]

        Hello
    \tHello

Thực hiện khớp với các đối tượng được biên dịch

Khi đã có mẫu của mình, chúng ta có thể tìm kiếm mẫu này trong văn bản/chuỗi mà chúng ta muốn tra cứu

  • trận đấu[]. Xác định xem RE có khớp ở đầu chuỗi không
  • Tìm kiếm[]. Quét qua một chuỗi, tìm kiếm bất kỳ vị trí nào mà RE này khớp
  • tìm tất cả []. Tìm tất cả các chuỗi con nơi RE khớp và trả về chúng dưới dạng danh sách
  • công cụ tìm[]. Tìm tất cả các chuỗi con nơi RE khớp và trả về chúng dưới dạng một trình vòng lặp

phương pháp sửa đổi

Chúng tôi sẽ đề cập đến các phương pháp này sau

  • tách ra[]. Trả về một danh sách trong đó chuỗi đã được tách ra ở mỗi trận đấu
  • phụ[]. Thay thế một hoặc nhiều kết quả khớp bằng một chuỗi

# finditer[]
my_string = 'abc123ABC123abc'
pattern = re.compile[r'123']
matches = pattern.finditer[my_string]
for match in matches:
    print[match]
    print[match.span[], match.start[], match.end[]]
    print[match.group[]] # returns the string

print[]
# findall[]
pattern = re.compile[r'123']
matches = pattern.findall[my_string]
for match in matches:
    print[match]

print[]
# match
match = pattern.match[my_string]
print[match]
pattern = re.compile[r'abc']
match = pattern.match[my_string]
print[match]

print[]
# search
match = pattern.search[my_string]
print[match]

    
    [0, 3] 0 3
    123
    
    [15, 18] 15 18
    123

    123
    123

    None
    

    

Ghi chú. Các phương thức cũng có thể được sử dụng trực tiếp trên mô-đun

        Hello
    \tHello
3. Nó không tạo ra nhiều sự khác biệt, nhưng một số người thích biên dịch trước rõ ràng và ràng buộc mẫu với một biến có thể sử dụng lại. [Xem https. // stackoverflow. com/câu hỏi/452104/is-it-worth-using-pythons-re-biên dịch]

________số 8

    
    

Các phương thức trên một đối tượng Match

  • tập đoàn[]. Trả về chuỗi khớp với RE
  • bắt đầu[]. Trả lại vị trí bắt đầu của trận đấu
  • chấm dứt[]. Trả lại vị trí kết thúc trận đấu
  • nhịp[]. Trả về một bộ chứa các vị trí [bắt đầu, kết thúc] của trận đấu

        Hello
    \tHello
0

        Hello
    \tHello
1

Ký tự meta

Siêu ký tự là ký tự có ý nghĩa đặc biệt.
Tất cả ký tự meta. . ^ $ * + ? . [ ]
Các ký tự meta cần phải được thoát [với ] nếu chúng tôi thực sự muốn tìm kiếm ký tự.

  • Bất kỳ ký tự nào [ngoại trừ ký tự xuống dòng] "he. o"
  • ^ Bắt đầu bằng "^xin chào"
  • \$ Kết thúc bằng "thế giới\$"
  • * Không hoặc nhiều lần xuất hiện "aix*"
  • + Một hoặc nhiều lần xuất hiện "aix+"
  • { } Chính xác số lần xuất hiện đã chỉ định "al{2}"
  • [] Một tập hợp các ký tự "[a-m]"
  • \ Báo hiệu một chuỗi đặc biệt [cũng có thể được sử dụng để thoát khỏi các ký tự đặc biệt] "\d"
  • Hoặc hoặc "rơi. ở lại"
  • [ ] Chụp và nhóm

test_string = '123abc456789abc123ABC'
pattern = re.compile[r'abc']
0

test_string = '123abc456789abc123ABC'
pattern = re.compile[r'abc']
1

Thêm siêu ký tự / Trình tự đặc biệt

Một chuỗi đặc biệt là \ theo sau bởi một trong các ký tự trong danh sách bên dưới và có ý nghĩa đặc biệt

Các nhóm [] trong Python là gì?

group[] lấy một danh sách các đối số. 00. 26 Nó trả về một bộ các nhóm phù hợp cho mỗi số bạn cung cấp cho nó . Vì vậy, nếu bạn gọi. group[1, 3] , nó sẽ trả về kết quả khớp thứ nhất và thứ ba trong một bộ. .

Nhóm 1 có nghĩa là gì trong Python?

nhóm[1] đại diện cho nhóm con đầu tiên trong ngoặc đơn .

Mục đích của M nhóm 0 ] là gì?

Từ tài liệu. Nhóm không biểu thị toàn bộ mẫu , vì vậy biểu thức m. nhóm[0] tương đương với m. tập đoàn[].

Z0 9 nghĩa là gì?

Dấu ngoặc đơn cho biết mẫu chứa bên trong sẽ được lưu trữ trong biến \1. Các ký tự trong ngoặc [a-zA-Z0-9] có nghĩa là bất kỳ chữ cái nào [không phân biệt chữ hoa chữ thường] hoặc chữ số sẽ khớp . Dấu * [dấu hoa thị] sau dấu ngoặc cho biết rằng các ký tự trong dấu ngoặc xuất hiện 0 lần trở lên.

Chủ Đề