Đối sánh lại có nghĩa là gì trong python?

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 so khớp với các đối tượng đã 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

  • cuộc thi đấ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

Meta ký tự¶

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

Sự khác biệt giữa tìm kiếm lại và đối sánh lại là gì?

Trăn. lại. tìm kiếm [] so với lại. Có sự khác biệt giữa việc sử dụng cả hai chức năng. Cả hai đều trả về kết quả khớp đầu tiên của một chuỗi con được tìm thấy trong chuỗi, nhưng re. match[] chỉ tìm kiếm từ đầu chuỗi và trả về đối tượng khớp nếu tìm thấy .

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

Biểu thức chính quy Cú pháp. Một biểu thức chính quy [hoặc RE] chỉ định một tập hợp các chuỗi phù hợp với nó; .

Khớp lại có trả về Boolean Python không?

Khoa học dữ liệu thực tế sử dụng Python . if there is a match, it has bool value of True and if there is no match, you get None that has a bool value of False.

Chủ Đề