Tìm lại trong Python

Trong bài viết này, chúng ta sẽ tìm hiểu cách tìm tất cả các kết quả khớp với biểu thức chính quy trong Python. Phương thức

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
0 của mô-đun RE quét mẫu biểu thức chính quy thông qua toàn bộ chuỗi mục tiêu và trả về tất cả các kết quả phù hợp được tìm thấy ở dạng danh sách

Mục lục

Làm thế nào để sử dụng lại. tìm tất cả []

Trước khi tiếp tục, hãy xem cú pháp của phương thức

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
0

cú pháp

re.findall[pattern, string, flags=0]
  1. target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
    2. mẫu biểu thức chính quy chúng tôi muốn tìm trong chuỗi hoặc văn bản
  2. target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
    3. Đó là biến trỏ đến chuỗi đích [trong đó chúng tôi muốn tìm kiếm các lần xuất hiện của mẫu]
  3. target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
    4. Nó đề cập đến các cờ regex tùy chọn. theo mặc định, không có cờ nào được áp dụng. Ví dụ: cờ 
    target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
    5 được sử dụng để thực hiện các phát hiện không phân biệt chữ hoa chữ thường

Mẫu biểu thức chính quy và chuỗi đích là đối số bắt buộc và cờ là tùy chọn

Giá trị trả về

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
0 quét chuỗi mục tiêu từ trái sang phải theo mẫu biểu thức chính quy và trả về tất cả các kết quả khớp theo thứ tự chúng được tìm thấy

Nó trả về

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
7 nếu nó không xác định được các lần xuất hiện của mẫu hoặc một mẫu như vậy không tồn tại trong chuỗi mục tiêu

tìm kiếm regex

Ví dụ để tìm tất cả các kết quả khớp với mẫu biểu thức chính quy

Trong ví dụ này, chúng tôi sẽ tìm thấy tất cả các số có trong chuỗi mục tiêu. Để đạt được điều này, hãy viết một mẫu biểu thức chính quy

Họa tiết.

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
8

Mô hình này có nghĩa là gì?

  • target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
    9 là một chuỗi biểu thức chính quy đặc biệt khớp với bất kỳ chữ số nào từ 0 đến 9 trong chuỗi mục tiêu
  • Ký tự meta
    target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
    10 cho biết số có thể chứa tối thiểu một hoặc tối đa bất kỳ số chữ số nào

Nói một cách đơn giản, nó có nghĩa là khớp với bất kỳ số nào trong chuỗi mục tiêu sau

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."

Như chúng ta có thể thấy trong chuỗi trên có các số '17', '1993', '112', '26', '12', '51', vì vậy chúng ta sẽ nhận được tất cả các số đó ở đầu ra

Thí dụ

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
1

Ghi chú

Trước hết, tôi đã sử dụng một chuỗi thô để chỉ định mẫu biểu thức chính quy tôi. e

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
11. Như bạn có thể đã biết, dấu gạch chéo ngược có ý nghĩa đặc biệt trong một số trường hợp vì nó có thể biểu thị ký tự thoát hoặc chuỗi thoát để tránh việc chúng ta phải sử dụng chuỗi thô

phương pháp tìm kiếm

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
12 hoạt động chính xác giống như phương thức
target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
0 ngoại trừ nó trả về một trình vòng lặp mang lại các đối tượng khớp khớp với mẫu biểu thức chính quy trong một chuỗi thay vì một danh sách

Nó quét chuỗi từ trái sang phải và các kết quả khớp được trả về ở dạng trình vòng lặp. Sau này, chúng ta có thể sử dụng đối tượng lặp này để trích xuất tất cả các kết quả phù hợp

Nói một cách đơn giản,

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
14 trả về một trình vòng lặp trên các đối tượng MatchObject

công cụ tìm regex[]

Nhưng tại sao lại sử dụng

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
14?

Trong một số trường hợp, số lượng trận đấu cao và bạn có thể gặp rủi ro làm đầy bộ nhớ của mình bằng cách tải tất cả chúng bằng cách sử dụng

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
16. Thay vì sử dụng
target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
14, bạn có thể nhận được tất cả các kết quả phù hợp có thể có dưới dạng một đối tượng trình vòng lặp, điều này sẽ cải thiện hiệu suất

Điều đó có nghĩa là,

target_string = "Emma is a basketball player who was born on June 17, 1993. She played 112 matches with scoring average 26.12 points per game. Her weight is 51 kg."
14 trả về một đối tượng có thể gọi được sẽ tải kết quả vào bộ nhớ khi được gọi. Vui lòng tham khảo câu trả lời Stackoverflow này để biết các lợi ích về hiệu suất của các trình vòng lặp

ví dụ về công cụ tìm kiếm

Bây giờ, hãy xem ví dụ để tìm tất cả hai chữ số liên tiếp bên trong chuỗi mục tiêu

re.findall[pattern, string, flags=0]
2

đầu ra

re.findall[pattern, string, flags=0]
3

Sử dụng nhiều hơn

  • Sử dụng công cụ tìm kiếm để tìm các chỉ mục của tất cả các kết quả khớp regex
  • Regex tìm tất cả các ký hiệu đặc biệt từ một chuỗi

Regex tìm tất cả các từ bắt đầu bằng các chữ cái cụ thể

Trong ví dụ này, chúng ta sẽ xem giải quyết 2 tình huống sau

  1. tìm tất cả các từ bắt đầu bằng một chữ cái/ký tự cụ thể
  2. tìm tất cả các từ bắt đầu bằng một chuỗi con cụ thể

Bây giờ, giả sử bạn có chuỗi sau

re.findall[pattern, string, flags=0]
4

Bây giờ hãy tìm tất cả các từ bắt đầu bằng chữ p. Ngoài ra, hãy tìm tất cả các từ bắt đầu bằng chuỗi con 'py'

Đâu là sự khác biệt giữa Search[] và Findall[]?

Ở đây bạn có thể thấy rằng, phương thức search[] có thể tìm thấy một mẫu từ bất kỳ vị trí nào của chuỗi. Lại. findall[] giúp lấy danh sách tất cả các mẫu phù hợp . Nó tìm kiếm từ đầu hoặc cuối của chuỗi đã cho.

RegEx Findall trả về cái gì?

Hàm findall[] của Regex cực kỳ hữu ích vì nó trả về danh sách các chuỗi chứa tất cả các kết quả phù hợp . Nếu mẫu không được tìm thấy, hãy làm lại. findall[] trả về một danh sách trống.

Làm cách nào tôi có thể tìm thấy tất cả các kết quả khớp với biểu thức chính quy trong Python?

phương thức findall[] quét mẫu biểu thức chính quy qua toàn bộ chuỗi mục tiêu và trả về tất cả các kết quả phù hợp được tìm thấy ở dạng danh sách.

Có sự khác biệt nào giữa re match[] và re search[] trong mô-đun Python re không?

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 .

Chủ Đề