Hướng dẫn python exact string match - khớp chuỗi chính xác của python

38

Nội dung chính ShowShow

  • Làm thế nào để kiểm tra tư cách thành viên của một từ trong một chuỗi (Python tích hợp)?
  • Làm thế nào để khớp một từ trong một chuỗi (ranh giới từ \ b)?
  • Làm thế nào để khớp một từ trong một chuỗi (trường hợp không nhạy cảm)?
  • Làm thế nào để tìm thấy tất cả các lần xuất hiện của một từ trong một chuỗi?
  • Làm thế nào để tìm tất cả các dòng chứa một từ chính xác?
  • Làm thế nào để tìm tất cả các dòng không chứa một từ chính xác?
  • Đi đâu từ đây?
  • Khóa học Python Regex
  • Lập trình viên hài hước
  • Làm thế nào để bạn phù hợp với một chuỗi chính xác trong Python?
  • Làm thế nào để bạn phù hợp với regex?
  • Làm thế nào để bạn phù hợp với một từ hoàn chỉnh trong Python?
  • Tại sao * được sử dụng trong regex?

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.Learn more.
Learn more.

Giả sử tôi có một chuỗi như

re.compile(r'^test-\d+$')
9. Tôi muốn kiểm tra xem nó có khớp với một mẫu như
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
0 hay không, trong đó
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
1 có nghĩa là một hoặc nhiều ký hiệu chữ số.

Tôi đã thử mã này:

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'

Làm thế nào tôi có thể làm cho nó để chỉ các

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
2 phù hợp và
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
3 không? Tôi đã thử sử dụng
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
4 thay vì
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
5 nhưng nó không giúp được gì.

Hướng dẫn python exact string match - khớp chuỗi chính xác của python

Đã hỏi ngày 21 tháng 7 năm 2017 lúc 18:50Jul 21, 2017 at 18:50Jul 21, 2017 at 18:50

1

Hãy thử chỉ định các quy tắc bắt đầu và kết thúc trong regex của bạn:

re.compile(r'^test-\d+$')

Đã trả lời ngày 21 tháng 7 năm 2017 lúc 18:52Jul 21, 2017 at 18:52Jul 21, 2017 at 18:52

Hszhszhszhsz

Phù bằng vàng 145K5858 gold badges254 silver badges308 bronze badges58 gold badges254 silver badges308 bronze badges

4

Để phù hợp chính xác

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
6

^: Bắt đầu chuỗi

$: Kết thúc chuỗi

Eureka

3.53815 Huy hiệu bạc20 Huy hiệu đồng15 silver badges20 bronze badges15 silver badges20 bronze badges

Đã trả lời ngày 26 tháng 11 năm 2018 lúc 13:58Nov 26, 2018 at 13:58Nov 26, 2018 at 13:58

PCSandeep PC SandeepSandeep PCSandeep PC

7177 Huy hiệu bạc11 Huy hiệu đồng7 silver badges11 bronze badges7 silver badges11 bronze badges

Vì Python 3.4, bạn có thể sử dụng Re.Fullmatch để tránh thêm

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
7 và
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
8 vào mẫu của bạn.
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False

Đã trả lời ngày 4 tháng 12 năm 2020 lúc 18:26Dec 4, 2020 at 18:26Dec 4, 2020 at 18:26

miles82miles82miles82miles82

6.40437 Huy hiệu bạc27 Huy hiệu đồng37 silver badges27 bronze badges37 silver badges27 bronze badges

1

Tôi nghĩ nó có thể giúp bạn -

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
3

Đã trả lời ngày 25 tháng 8 năm 2018 lúc 14:37Aug 25, 2018 at 14:37Aug 25, 2018 at 14:37

Bạn có thể thử

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
9:
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
5

Đã trả lời ngày 21 tháng 7 năm 2017 lúc 18:54Jul 21, 2017 at 18:54Jul 21, 2017 at 18:54

Ajax1234Ajax1234Ajax1234Ajax1234

67.6K7 Huy hiệu vàng58 Huy hiệu bạc100 Huy hiệu đồng7 gold badges58 silver badges100 bronze badges7 gold badges58 silver badges100 bronze badges

Một mô hình như

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
30 nên làm bạn;
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
7

Thử nghiệm

Điều này đòi hỏi sự kết hợp của các ranh giới từ, vì vậy ngăn chặn các chuỗi con khác xảy ra sau trận đấu mong muốn của bạn.

Đã trả lời ngày 21 tháng 7 năm 2017 lúc 18:53Jul 21, 2017 at 18:53Jul 21, 2017 at 18:53

Tom Wyllietom WyllieTom WyllieTom Wyllie

1.91012 Huy hiệu bạc16 Huy hiệu đồng12 silver badges16 bronze badges12 silver badges16 bronze badges

Câu hỏi cho thấy rằng có thể có một số khoảng cách trong việc tìm hiểu những điều cơ bản của thư viện biểu hiện chính quy Python.

Làm thế nào để phù hợp với một từ hoặc chuỗi chính xác bằng cách sử dụng một biểu thức thông thường trong Python?

Vì vậy, nếu bạn là một người thiếu kiên nhẫn, thì đây là câu trả lời ngắn gọn:

Để phù hợp với một chuỗi chính xác

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
81 một phần trong
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
32, hãy sử dụng Regex
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
31 đơn giản. Tuy nhiên, một cách tiếp cận đơn giản và pythonic hơn sẽ sử dụng từ khóa
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
34 trong biểu thức thành viên
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
35.
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
32, use the simple regex
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
31. However, a simpler and more Pythonic approach would be using the
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
34 keyword within membership expression
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
35. 1 một phần trong
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
32, hãy sử dụng Regex
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
31 đơn giản. Tuy nhiên, một cách tiếp cận đơn giản và pythonic hơn sẽ sử dụng từ khóa
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
34 trong biểu thức thành viên
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
35.
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
32
, use the simple regex
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
31. However, a simpler and more Pythonic approach would be using the
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
34 keyword within membership expression
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
35.

Đối với một trận đấu đầy đủ, hãy sử dụng các ký hiệu bắt đầu và kết thúc

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
36 không khớp với chuỗi
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
32 nhưng nó sẽ khớp với
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
31.

Làm thế nào để phù hợp với một từ chính xác trong Python Regex? (Trả lời: Don Tiết)

Hãy chơi video hướng dẫn khi bạn xem bài viết.

Bạn có muốn thành thạo siêu cường Regex không? Kiểm tra cuốn sách mới của tôi Cách thông minh nhất để học các biểu thức thường xuyên trong Python với cách tiếp cận 3 bước sáng tạo để học tập tích cực: (1) Nghiên cứu một chương sách, (2) Giải câu đố mã và (3) xem video chương giáo dục . Check out my new book The Smartest Way to Learn Regular Expressions in Python with the innovative 3-step approach for active learning: (1) study a book chapter, (2) solve a code puzzle, and (3) watch an educational chapter video. Check out my new book The Smartest Way to Learn Regular Expressions in Python with the innovative 3-step approach for active learning: (1) study a book chapter, (2) solve a code puzzle, and (3) watch an educational chapter video.


Càng xa càng tốt. Nhưng hãy để Lừa đảo vào một số câu hỏi cụ thể hơn vì bạn có thể không chính xác tìm kiếm câu trả lời đơn giản này.

Trên thực tế, có nhiều cách để hiểu câu hỏi của bạn và tôi đã cố gắng tìm tất cả các diễn giải và trả lời từng cái một trong hướng dẫn này:

  • Làm thế nào để kiểm tra tư cách thành viên của một từ trong một chuỗi bằng thư viện không?
  • Làm thế nào để phù hợp với một chuỗi chính xác bằng thư viện REGEX của Python?
  • Làm thế nào để khớp một từ trong một chuỗi bằng cách sử dụng các ranh giới từ
    >>> import re
    >>> p = re.compile(r'\d{3}')
    >>> bool(p.match('1234'))
    True
    
    >>> bool(p.fullmatch('1234'))
    False
    
    39?
  • Làm thế nào để khớp một từ trong một chuỗi (trường hợp không nhạy cảm)?
  • Làm thế nào để tìm thấy tất cả các lần xuất hiện của một từ trong một chuỗi?
  • Làm thế nào để tìm tất cả các dòng chứa một từ chính xác?

Hãy cùng đi sâu vào từng người trong số họ trong bài viết còn lại để tìm hiểu và cải thiện siêu năng lực Regex của bạn!

  • Làm thế nào để kiểm tra tư cách thành viên của một từ trong một chuỗi (Python tích hợp)?
  • Làm thế nào để phù hợp với một chuỗi chính xác (regex)?
  • Làm thế nào để khớp một từ trong một chuỗi (ranh giới từ \ b)?
  • Làm thế nào để khớp một từ trong một chuỗi (trường hợp không nhạy cảm)?
  • Làm thế nào để tìm thấy tất cả các lần xuất hiện của một từ trong một chuỗi?
  • Làm thế nào để tìm tất cả các dòng chứa một từ chính xác?
  • Hãy cùng đi sâu vào từng người trong số họ trong bài viết còn lại để tìm hiểu và cải thiện siêu năng lực Regex của bạn!
  • Làm thế nào để kiểm tra tư cách thành viên của một từ trong một chuỗi (Python tích hợp)?
  • Làm thế nào để phù hợp với một chuỗi chính xác (regex)?
  • Làm thế nào để khớp một từ trong một chuỗi (ranh giới từ \ b)?

Làm thế nào để kiểm tra tư cách thành viên của một từ trong một chuỗi (Python tích hợp)?

Làm thế nào để phù hợp với một chuỗi chính xác (regex)?

Làm thế nào để khớp một từ trong một chuỗi (ranh giới từ \ b)?2, use the
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
34 keyword within membership expression
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
35.

Làm thế nào để khớp một từ trong một chuỗi (ranh giới từ \ b)?

Làm thế nào để khớp một từ trong một chuỗi (trường hợp không nhạy cảm)?

Làm thế nào để tìm thấy tất cả các lần xuất hiện của một từ trong một chuỗi?

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
4

Làm thế nào để tìm tất cả các dòng chứa một từ chính xác?

Hãy cùng đi sâu vào từng người trong số họ trong bài viết còn lại để tìm hiểu và cải thiện siêu năng lực Regex của bạn!

Làm thế nào để kiểm tra tư cách thành viên của một từ trong một chuỗi (Python tích hợp)?

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
5

Làm thế nào để phù hợp với một chuỗi chính xác (regex)?

Làm thế nào để khớp một từ trong một chuỗi (ranh giới từ \ b)?

Làm thế nào để tìm tất cả các dòng không chứa một từ chính xác?

Đi đâu từ đây?

Khóa học Python Regex

Lập trình viên hài hước

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
12, use the
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
34 keyword within membership expression
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
35.

Vì vậy, bạn nên dựa vào phương pháp này nếu có thể:9, hãy sử dụng chuỗi như một regex. Ví dụ: bạn có thể gọi
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
71 để khớp với chuỗi chính xác
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
31 trong chuỗi
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
32 và trả về một đối tượng khớp.

Ví dụ đầu tiên cho thấy cách thực hiện đơn giản nhất: chỉ cần hỏi Python xem một chuỗi có phải là một trong các chuỗi khác không. Đây được gọi là nhà điều hành thành viên và nó rất hiệu quả.

Bạn cũng có thể kiểm tra xem một chuỗi không xảy ra trong một chuỗi khác.

Đây là cách: làm thế nào:

Nhà điều hành thành viên tiêu cực

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
55 trả về
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
56 nếu chuỗi
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
57 không xảy ra trong chuỗi
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
58.

Nhưng có một vấn đề với nhà điều hành thành viên. Giá trị trả về là một giá trị boolean.Related Tutorial: If you’re unsure about the
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
78 method, check out my detailed tutorial on this blog.

Tuy nhiên, lợi thế của thư viện biểu thức chính quy Python,

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
59 là nó trả về một đối tượng khớp chứa thông tin thú vị hơn như vị trí chính xác của chuỗi con phù hợp.

Vì vậy, hãy để khám phá vấn đề khớp chuỗi chính xác bằng thư viện Regex tiếp theo:

Để phù hợp với một chuỗi chính xác bằng thư viện Python từ Regex

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
2

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
19, hãy sử dụng chuỗi như một regex. Ví dụ: bạn có thể gọi
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
71 để khớp với chuỗi chính xác
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
31 trong chuỗi
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
32 và trả về một đối tượng khớp.

Tại đây, cách thức bạn có thể khớp một chuỗi con chính xác trong một chuỗi đã cho:

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
5

Làm thế nào để khớp một từ trong một chuỗi (ranh giới từ \ b)?

Làm thế nào để tìm tất cả các dòng không chứa một từ chính xác?

Đi đâu từ đây?

re.compile(r'^test-\d+$')
0

Khóa học Python Regex

re.compile(r'^test-\d+$')
1

Lập trình viên hài hước

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
12, use the
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
34 keyword within membership expression
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
35.

Vì vậy, bạn nên dựa vào phương pháp này nếu có thể:

Ví dụ đầu tiên cho thấy cách thực hiện đơn giản nhất: chỉ cần hỏi Python xem một chuỗi có phải là một trong các chuỗi khác không. Đây được gọi là nhà điều hành thành viên và nó rất hiệu quả.1. Metacharacter này phù hợp ở đầu và cuối của mỗi từ, nhưng nó không tiêu thụ bất cứ thứ gì. Nói cách khác, nó chỉ đơn giản là kiểm tra xem từ bắt đầu hay kết thúc ở vị trí này (bằng cách kiểm tra các ký tự khoảng trắng hoặc không từ).

Bạn cũng có thể kiểm tra xem một chuỗi không xảy ra trong một chuỗi khác.

re.compile(r'^test-\d+$')
2

Đây là cách: làm thế nào:

Nhà điều hành thành viên tiêu cực

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
55 trả về
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
56 nếu chuỗi
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
57 không xảy ra trong chuỗi
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
58.

Nhưng có một vấn đề với nhà điều hành thành viên. Giá trị trả về là một giá trị boolean.

Do đó, Regex không phù hợp với chuỗi

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
46 nhưng nó khớp với chuỗi
import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
47.

Lưu ý rằng chúng tôi sử dụng chuỗi RAW

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
48 để viết regex để chuỗi thoát
import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
41 hoạt động trong chuỗi.
  • Nếu không có chuỗi thô, Python sẽ cho rằng đó là một ký tự dấu gạch chéo ngược không được xác định
    import re
    correct_string = 'test-251'
    wrong_string = 'test-123x'
    regex = re.compile(r'test-\d+')
    if regex.match(correct_string):
        print 'Matching correct string.'
    if regex.match(wrong_string):
        print 'Matching wrong_string.'
    
    50, tiếp theo là nhân vật
    import re
    correct_string = 'test-251'
    wrong_string = 'test-123x'
    regex = re.compile(r'test-\d+')
    if regex.match(correct_string):
        print 'Matching correct string.'
    if regex.match(wrong_string):
        print 'Matching wrong_string.'
    
    51.
  • Với chuỗi RAW, tất cả các dấu gạch chéo ngược sẽ chỉ là: Backslashes. Động cơ Regex sau đó diễn giải hai ký tự là một metacharacter đặc biệt: từ ranh giới
    import re
    correct_string = 'test-251'
    wrong_string = 'test-123x'
    regex = re.compile(r'test-\d+')
    if regex.match(correct_string):
        print 'Matching correct string.'
    if regex.match(wrong_string):
        print 'Matching wrong_string.'
    
    41.

Nhưng điều gì sẽ xảy ra nếu bạn không quan tâm đến việc từ này là chữ hoa, chữ thường hay viết hoa? Nói cách khác:

Làm thế nào để khớp một từ trong một chuỗi (trường hợp không nhạy cảm)?

Bạn có thể tìm kiếm một từ chính xác trong một chuỗi chuỗi nhưng bỏ qua viết hoa. Bằng cách này, nó sẽ không liên quan đến việc các ký tự từ là chữ thường hay chữ hoa.

Đây là cách: làm thế nào:

re.compile(r'^test-\d+$')
3

Tất cả ba cách đều tương đương: tất cả đều bỏ qua việc viết hoa của các chữ cái từ.

Hướng dẫn liên quan: Nếu bạn cần tìm hiểu thêm về đối số

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
53 trong Python, hãy xem hướng dẫn chi tiết của tôi trên blog này.Related Tutorial: If you need to learn more about the
import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
53 argument in Python, check out my detailed tutorial on this blog. Related Tutorial: If you need to learn more about the
import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
53 argument in Python, check out my detailed tutorial on this blog.

Ví dụ thứ ba sử dụng cờ trong regex

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
54 cũng có nghĩa là: Bỏ qua việc viết hoa.

Làm thế nào để tìm thấy tất cả các lần xuất hiện của một từ trong một chuỗi?

Được rồi, bạn không bao giờ hài lòng, phải không? Vì vậy, hãy để khám phá cách bạn có thể tìm thấy tất cả các lần xuất hiện của một từ trong một chuỗi.

Trong các ví dụ trước, bạn đã sử dụng phương pháp

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
75 để tìm kết quả phù hợp đầu tiên của
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
76 trong
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
77.

Tiếp theo, bạn sẽ học cách tìm tất cả các lần xuất hiện (không chỉ trận đấu đầu tiên) bằng cách sử dụng phương pháp

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
58.

Hướng dẫn liên quan: Bạn cũng có thể đọc hướng dẫn blog của tôi về phương pháp

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
5 9 giải thích tất cả các chi tiết.Related Tutorial: You can also read my blog tutorial about the
import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
59 method that explains all the details.
re.compile(r'^test-\d+$')
4Related Tutorial: You can also read my blog tutorial about the
import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
59 method that explains all the details.
re.compile(r'^test-\d+$')
4

Mã của bạn lấy tất cả các chuỗi con phù hợp.

Nếu bạn cần tìm tất cả các đối tượng khớp thay vì khớp nối, bạn có thể sử dụng phương thức

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
50:
re.compile(r'^test-\d+$')
5

Phương thức

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
50 tạo ra một trình lặp lặp lại trên tất cả các khớp và trả về các đối tượng khớp. Bằng cách này, bạn có thể tìm thấy tất cả các trận đấu và nhận các đối tượng phù hợp là tốt.

Làm thế nào để tìm tất cả các dòng chứa một từ chính xác?

Giả sử bạn muốn tìm tất cả các dòng chứa từ

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
52 từ một chuỗi nhiều dòng trong Python. Làm thế nào bạn làm điều đó?

Câu trả lời sử dụng một đặc sản Python Regex tốt: Dot Regex phù hợp với tất cả các ký tự, ngoại trừ ký tự mới. Do đó, Regex

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
53 sẽ khớp với tất cả các ký tự trong một dòng nhất định (nhưng sau đó dừng lại).

Tại đây, cách bạn có thể sử dụng thực tế này để có được tất cả các dòng có chứa một từ nhất định:

re.compile(r'^test-\d+$')
6

Ba trong số bốn dòng chứa từ

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
52. Phương pháp
import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
59 trả về chúng dưới dạng chuỗi.

Làm thế nào để tìm tất cả các dòng không chứa một từ chính xác?

Trong phần trước, bạn đã học cách tìm tất cả các dòng có chứa một từ chính xác.

Trong phần này, bạn sẽ học cách làm ngược lại: Tìm tất cả các dòng không chứa một từ chính xác.

Điều này phức tạp hơn một chút. Tôi sẽ chỉ cho bạn mã trước và giải thích nó sau đó:

re.compile(r'^test-\d+$')
7

Bạn có thể thấy rằng mã chỉ khớp thành công các dòng không chứa chuỗi

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
52.

Làm thế nào bạn có thể làm điều đó?

Ý tưởng chung là phù hợp với một dòng không chứa chuỗi ‘

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
17, in nó vào vỏ và chuyển sang dòng tiếp theo.
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
50 hoàn thành điều này một cách dễ dàng bằng cách trả về một trình lặp trên tất cả các đối tượng khớp.7, in nó vào vỏ và chuyển sang dòng tiếp theo.
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
50 hoàn thành điều này một cách dễ dàng bằng cách trả về một trình lặp trên tất cả các đối tượng khớp.

Mẫu Regex

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
59 phù hợp với toàn bộ dòng từ vị trí đầu tiên
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
20 với vị trí cuối cùng
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
21.

Hướng dẫn liên quan: Nếu bạn cần một sự bồi dưỡng trên các metacharacters bắt đầu và cuối dòng, hãy đọc hướng dẫn 5 phút này.If you need a refresher on the start-of-the-line and end-of-the-line metacharacters, read this 5-min tutorial.If you need a refresher on the start-of-the-line and end-of-the-line metacharacters, read this 5-min tutorial.

Ở giữa, bạn phù hợp với một số lượng ký tự tùy ý: bộ định lượng dấu hoa thị làm điều đó cho bạn.

Hướng dẫn liên quan: Nếu bạn cần trợ giúp để hiểu bộ định lượng dấu hoa thị, hãy xem hướng dẫn blog này.If you need help understanding the asterisk quantifier, check out this blog tutorial.If you need help understanding the asterisk quantifier, check out this blog tutorial.

Bạn phù hợp với nhân vật nào? Chỉ những người mà bạn không có từ tiêu cực

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
52 trong giao diện của bạn.

Hướng dẫn liên quan: Nếu bạn cần bồi dưỡng trên Lookahead, hãy xem hướng dẫn này.If you need a refresher on lookaheads, check out this tutorial.If you need a refresher on lookaheads, check out this tutorial.

Vì chính cái nhìn không tiêu thụ một nhân vật, chúng ta cần tiêu thụ nó bằng cách sử dụng thủ công bằng cách thêm dấu chấm Metacharacter

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
23 phù hợp với tất cả các ký tự ngoại trừ ký tự mới
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
24.

Hướng dẫn liên quan: Hóa ra, cũng có một hướng dẫn blog về Dot Metacharacter.As it turns out, there’s also a blog tutorial on the dot metacharacter.As it turns out, there’s also a blog tutorial on the dot metacharacter.

Cuối cùng, bạn cần xác định cờ

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
25, tóm lại:
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
26, bởi vì nó cho phép bắt đầu
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
7 và kết thúc
>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
8 Metacharacters cũng phù hợp với đầu và cuối của mỗi dòng (không chỉ ở đầu và cuối của mỗi chuỗi).

Cùng nhau, biểu thức chính quy này phù hợp với tất cả các dòng không chứa từ cụ thể

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
52.

Bài viết liên quan:

  • Siêu năng lực Python Regex - Hướng dẫn cuối cùng

Đi đâu từ đây?

Tóm tắt: Bạn đã học được nhiều cách khớp một từ chính xác trong một chuỗi.: You’ve learned multiple ways of matching an exact word in a string. : You’ve learned multiple ways of matching an exact word in a string.

  • Bạn có thể sử dụng toán tử thành viên Python đơn giản.
  • Bạn có thể sử dụng Regex mặc định mà không có Metacharacters đặc biệt.
  • Bạn có thể sử dụng từ metacharacter ranh giới
    import re
    correct_string = 'test-251'
    wrong_string = 'test-123x'
    regex = re.compile(r'test-\d+')
    if regex.match(correct_string):
        print 'Matching correct string.'
    if regex.match(wrong_string):
        print 'Matching wrong_string.'
    
    41 để chỉ khớp với toàn bộ từ.
  • Bạn có thể phù hợp với sự nhạy cảm của trường hợp bằng cách sử dụng đối số cờ
    re.compile(r'^test-\d+$')
    
    01.
  • Bạn có thể khớp không chỉ một mà tất cả các lần xuất hiện của một từ trong một chuỗi bằng cách sử dụng các phương thức
    >>> import re
    >>> p = re.compile(r'\d{3}')
    >>> bool(p.match('1234'))
    True
    
    >>> bool(p.fullmatch('1234'))
    False
    
    9 hoặc
    re.compile(r'^test-\d+$')
    
    03.
  • Và bạn có thể phù hợp với tất cả các dòng chứa và không chứa một từ nhất định.

Pheww. Đây là một số thứ nặng về lý thuyết. Bạn có cảm thấy như bạn cần một số thứ thiết thực hơn tiếp theo?

Sau đó, hãy xem khóa học tự do Python nặng thực hành của tôi giúp bạn chuẩn bị cho điều tồi tệ nhất và tạo ra một luồng thu nhập thứ hai bằng cách tạo doanh nghiệp phụ mã hóa phát triển mạnh của bạn trực tuyến.

💡 Nhấp vào: https://blog.finxter.com/become-python-freelancer-course/ để tìm hiểu thêm về khóa học Finxter Freelancer và bắt đầu kinh doanh mã hóa phát triển mạnh của bạn trực tuyến (thu nhập phụ hoặc toàn thời gian).Click: https://blog.finxter.com/become-python-freelancer-course/ to learn more about the Finxter freelancer course and start your thriving coding business online (side income or full-time). Click: https://blog.finxter.com/become-python-freelancer-course/ to learn more about the Finxter freelancer course and start your thriving coding business online (side income or full-time).

Ngoài ra, bạn có thể thích khóa học này trên Học viện Khoa học Máy tính Finxter:

Khóa học Python Regex

Các kỹ sư của Google là những bậc thầy biểu hiện thường xuyên. Công cụ tìm kiếm của Google là một công cụ xử lý văn bản khổng lồ, trích xuất giá trị từ hàng nghìn tỷ trang web. & NBSP; & NBSP;The Google search engine is a massive text-processing engine that extracts value from trillions of webpages.  The Google search engine is a massive text-processing engine that extracts value from trillions of webpages.  

Các kỹ sư Facebook là những bậc thầy biểu hiện thường xuyên. Các mạng xã hội như Facebook, WhatsApp và Instagram kết nối con người qua tin nhắn văn bản. & NBSP; Social networks like Facebook, WhatsApp, and Instagram connect humans via text messages.  Social networks like Facebook, WhatsApp, and Instagram connect humans via text messages. 

Các kỹ sư Amazon là những bậc thầy biểu hiện thường xuyên. Gã khổng lồ thương mại sản phẩm tàu ​​điện tử dựa trên mô tả sản phẩm văn bản.Ecommerce giants ship products based on textual product descriptions.  Regular expressions ​rule the game ​when text processing ​meets computer science. Ecommerce giants ship products based on textual product descriptions.  Regular expressions ​rule the game ​when text processing ​meets computer science. 

Nếu bạn cũng muốn trở thành một bậc thầy biểu hiện thông thường, hãy xem khóa học Python Regex toàn diện nhất trên hành tinh:

Lưu ý tất cả các khóa học có sẵn miễn phí cho sinh viên Khóa học Freelancer Finxter!

Lập trình viên hài hước

>>> import re
>>> p = re.compile(r'\d{3}')
>>> bool(p.match('1234'))
True

>>> bool(p.fullmatch('1234'))
False
088

Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.

Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer (Nostarch 2020), đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.

Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.

Làm thế nào để bạn phù hợp với một chuỗi chính xác trong Python?

Kết hợp chính xác (so sánh bình đẳng): ==,! = Như với các số, toán tử == xác định xem hai chuỗi có bằng nhau không.Nếu họ bằng nhau, đúng được trả lại;Nếu họ không, sai được trả lại.Nó nhạy cảm trường hợp, và tương tự áp dụng cho các so sánh của các toán tử và phương pháp khác.== , != As with numbers, the == operator determines if two strings are equal. If they are equal, True is returned; if they are not, False is returned. It is case-sensitive, and the same applies to comparisons by other operators and methods.== , != As with numbers, the == operator determines if two strings are equal. If they are equal, True is returned; if they are not, False is returned. It is case-sensitive, and the same applies to comparisons by other operators and methods.

Làm thế nào để bạn phù hợp với regex?

Để phù hợp với một ký tự có ý nghĩa đặc biệt trong Regex, bạn cần sử dụng tiền tố trình tự thoát với dấu gạch chéo ngược (\).Ví dụ., \.diêm ".";Regex \+ khớp với "+";và regex \ (khớp "(". Bạn cũng cần sử dụng regex \\ để khớp với "\" (slash ngược).use a escape sequence prefix with a backslash ( \ ). E.g., \. matches "." ; regex \+ matches "+" ; and regex \( matches "(" . You also need to use regex \\ to match "\" (back-slash).use a escape sequence prefix with a backslash ( \ ). E.g., \. matches "." ; regex \+ matches "+" ; and regex \( matches "(" . You also need to use regex \\ to match "\" (back-slash).

Làm thế nào để bạn phù hợp với một từ hoàn chỉnh trong Python?

Để phù hợp với một chuỗi chính xác bằng thư viện Regex của Python, hãy sử dụng chuỗi làm regex.Ví dụ: bạn có thể gọi Re.Search ('Xin chào', 'Hello World') để khớp với chuỗi chính xác 'xin chào' trong chuỗi 'Hello World' và trả về đối tượng khớp.use the string as a regex. For example, you can call re.search('hello', 'hello world') to match the exact string 'hello' in the string 'hello world' and return a match object.use the string as a regex. For example, you can call re.search('hello', 'hello world') to match the exact string 'hello' in the string 'hello world' and return a match object.

Tại sao * được sử dụng trong regex?

- Một "dấu chấm" chỉ ra bất kỳ ký tự.* - có nghĩa là "0 hoặc nhiều phiên bản của mã thông báo regex trước đó"means "0 or more instances of the preceding regex token"means "0 or more instances of the preceding regex token"