Hướng dẫn how do i check if a string contains a text in python? - làm cách nào để kiểm tra xem một chuỗi có chứa văn bản trong python không?

Trong hướng dẫn này, chúng ta sẽ xem cách kiểm tra xem một chuỗi có chứa một chuỗi con trong Python không. Như thường lệ, mỗi cách tiếp cận chúng tôi sẽ đề cập có những ưu và nhược điểm khác nhau.

Các nhà điều hành trong

Cách dễ nhất để kiểm tra xem chuỗi Python có chứa chất nền là sử dụng toán tử

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4 không.

Toán tử

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4 được sử dụng để kiểm tra các cấu trúc dữ liệu để thành viên trong Python. Nó trả về một boolean (hoặc
fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
6 hoặc
fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
7). Để kiểm tra xem một chuỗi có chứa chuỗi con trong Python bằng toán tử
fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4 không, chúng tôi chỉ cần gọi nó trên SuperString:

fullstring = "StackAbuse"
substring = "tack"

if substring in fullstring:
    print("Found!")
else:
    print("Not found!")

Toán tử này là tốc ký để gọi phương thức

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
9 của đối tượng và cũng hoạt động tốt để kiểm tra xem một mục có tồn tại trong danh sách không. Điều đáng chú ý là nó không an toàn, vì vậy nếu
fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
0 của chúng tôi chỉ ra
fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
1, một ngoại lệ sẽ bị ném:

TypeError: argument of type 'NoneType' is not iterable

Để tránh điều này, trước tiên bạn sẽ muốn kiểm tra xem nó có chỉ vào

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
1 hay không:

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")

Phương thức chuỗi.index ()

Loại chuỗi trong Python có một phương thức gọi là

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
3 có thể được sử dụng để tìm chỉ số bắt đầu của lần xuất hiện đầu tiên của chuỗi con trong chuỗi.

Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!

Nếu không tìm thấy chất nền, ngoại lệ

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
4 được ném, có thể được xử lý với khối Expet-Offce-Else:

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")

Phương pháp này rất hữu ích nếu bạn cần biết vị trí của chuỗi con, trái ngược với sự tồn tại của nó trong toàn bộ chuỗi.

Phương thức chuỗi.find ()

Loại chuỗi có một phương thức khác được gọi là

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
5 thuận tiện hơn để sử dụng so với
fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
3, vì chúng ta không cần phải lo lắng về việc xử lý bất kỳ ngoại lệ nào.

Nếu

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
7 không tìm thấy một trận đấu, nó sẽ trả về -1, nếu không, nó sẽ trả về chỉ số bên trái nhất của chuỗi con trong chuỗi lớn hơn.

fullstring = "StackAbuse"
substring = "tack"

if fullstring.find(substring) != -1:
    print("Found!")
else:
    print("Not found!")

Nếu bạn muốn tránh cần phải bắt lỗi, thì phương pháp này sẽ được ưu tiên hơn

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
3.

Biểu thức thông thường (Regex)

Biểu thức chính quy cung cấp một cách linh hoạt hơn (mặc dù phức tạp hơn) để kiểm tra các chuỗi để khớp mẫu. Python được vận chuyển với một mô-đun tích hợp cho các biểu thức thông thường, được gọi là

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
9. Mô -đun
fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
9 chứa một hàm gọi là
fullstring = "StackAbuse"
substring = "tack"

if fullstring.find(substring) != -1:
    print("Found!")
else:
    print("Not found!")
1, chúng ta có thể sử dụng để phù hợp với mẫu con:

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"

Phương pháp này là tốt nhất nếu bạn cần một chức năng phù hợp phức tạp hơn, như phù hợp với trường hợp không nhạy cảm. Nếu không, nên tránh tốc độ biến chứng và tốc độ chậm hơn cho các trường hợp sử dụng phù hợp với chất nền đơn giản.

Bài viết này được viết bởi Jacob Stopak, một nhà tư vấn và nhà phát triển phần mềm với niềm đam mê giúp đỡ người khác cải thiện cuộc sống của họ thông qua mã. Jacob là người tạo ra cam kết ban đầu - một trang web dành riêng để giúp các nhà phát triển tò mò tìm hiểu cách các chương trình yêu thích của họ được mã hóa. Dự án nổi bật của nó giúp mọi người học Git ở cấp độ mã.

Nếu bạn mới lập trình hoặc đến từ một ngôn ngữ lập trình khác ngoài Python, bạn có thể đang tìm cách tốt nhất để kiểm tra xem một chuỗi có chứa một chuỗi khác trong Python hay không.

Xác định các chuỗi con như vậy có ích khi bạn làm việc với nội dung văn bản từ một tệp hoặc sau khi bạn đã nhận được đầu vào của người dùng. Bạn có thể muốn thực hiện các hành động khác nhau trong chương trình của mình tùy thuộc vào việc có thể có trên nền hay không.

Trong hướng dẫn này, bạn sẽ tập trung vào cách pythonic nhất để giải quyết nhiệm vụ này, sử dụng nhà điều hành thành viên

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4. Ngoài ra, bạn sẽ học cách xác định các phương thức chuỗi phù hợp cho các trường hợp sử dụng liên quan, nhưng khác nhau.membership operator
fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4
. Additionally, you’ll learn how to identify the right string methods for related, but different, use cases.

Cuối cùng, bạn cũng sẽ học cách tìm các chất nền trong các cột gấu trúc. Điều này rất hữu ích nếu bạn cần tìm kiếm thông qua dữ liệu từ tệp CSV. Bạn có thể sử dụng cách tiếp cận mà bạn sẽ học trong phần tiếp theo, nhưng nếu bạn làm việc với dữ liệu dạng bảng, thì tốt nhất là tải dữ liệu vào DataFrame của Pandas và tìm kiếm các chất nền trong gấu trúc.find substrings in pandas columns. This is helpful if you need to search through data from a CSV file. You could use the approach that you’ll learn in the next section, but if you’re working with tabular data, it’s best to load the data into a pandas DataFrame and search for substrings in pandas.

Cách xác nhận rằng chuỗi python chứa một chuỗi khác

Nếu bạn cần kiểm tra xem một chuỗi có chứa chuỗi con hay không, hãy sử dụng toán tử thành viên Python,

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4. Trong Python, đây là cách được khuyến nghị để xác nhận sự tồn tại của một chuỗi con trong một chuỗi:

>>>

>>> raw_file_content = """Hi there and welcome.
... This is a special hidden file with a SECRET secret.
... I don't want to tell you The Secret,
... but I do want to secretly tell you that I have one."""

>>> "secret" in raw_file_content
True

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

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4 cung cấp cho bạn một cách nhanh chóng và có thể đọc được để kiểm tra xem một chuỗi con có mặt trong một chuỗi không. Bạn có thể nhận thấy rằng dòng mã gần như đọc như tiếng Anh.

Khi bạn sử dụng

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4, biểu thức trả về giá trị boolean:

  • fullstring = None
    substring = "tack"
    
    if fullstring != None and substring in fullstring:
        print("Found!")
    else:
        print("Not found!")
    
    6 nếu Python tìm thấy cơ chất
  • fullstring = None
    substring = "tack"
    
    if fullstring != None and substring in fullstring:
        print("Found!")
    else:
        print("Not found!")
    
    7 Nếu Python didn tìm thấy cơ sở

Bạn có thể sử dụng cú pháp trực quan này trong các câu lệnh có điều kiện để đưa ra quyết định trong mã của mình:

>>>

>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!

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

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4 cung cấp cho bạn một cách nhanh chóng và có thể đọc được để kiểm tra xem một chuỗi con có mặt trong một chuỗi không. Bạn có thể nhận thấy rằng dòng mã gần như đọc như tiếng Anh.

Khi bạn sử dụng

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4, biểu thức trả về giá trị boolean:

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
6 nếu Python tìm thấy cơ chất

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
7 Nếu Python didn tìm thấy cơ sở

Bạn có thể sử dụng cú pháp trực quan này trong các câu lệnh có điều kiện để đưa ra quyết định trong mã của mình:

Trong đoạn mã này, bạn sử dụng nhà điều hành thành viên để kiểm tra xem

fullstring = "StackAbuse"
substring = "tack"

if fullstring.find(substring) != -1:
    print("Found!")
else:
    print("Not found!")
8 có phải là phần phụ của
fullstring = "StackAbuse"
substring = "tack"

if fullstring.find(substring) != -1:
    print("Found!")
else:
    print("Not found!")
9 hay không. Nếu có, thì bạn sẽ in một tin nhắn vào thiết bị đầu cuối. Bất kỳ mã nào được thụt vào sẽ chỉ thực thi nếu chuỗi python mà bạn đang kiểm tra đều có chứa nền tảng mà bạn cung cấp.

>>>

>>> title_cased_file_content = """Hi There And Welcome.
... This Is A Special Hidden File With A Secret Secret.
... I Don't Want To Tell You The Secret,
... But I Do Want To Secretly Tell You That I Have One."""

>>> "secret" in title_cased_file_content
False

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

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4 cung cấp cho bạn một cách nhanh chóng và có thể đọc được để kiểm tra xem một chuỗi con có mặt trong một chuỗi không. Bạn có thể nhận thấy rằng dòng mã gần như đọc như tiếng Anh.

Khi bạn sử dụng

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4, biểu thức trả về giá trị boolean:

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
6 nếu Python tìm thấy cơ chất

>>>

>>> file_content = title_cased_file_content.lower()

>>> print(file_content)
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.

>>> "secret" in file_content
True

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

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4 cung cấp cho bạn một cách nhanh chóng và có thể đọc được để kiểm tra xem một chuỗi con có mặt trong một chuỗi không. Bạn có thể nhận thấy rằng dòng mã gần như đọc như tiếng Anh.

Khi bạn sử dụng

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4, biểu thức trả về giá trị boolean:

fullstring = None substring = "tack" if fullstring != None and substring in fullstring: print("Found!") else: print("Not found!") 6 nếu Python tìm thấy cơ chất

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
7 Nếu Python didn tìm thấy cơ sở

Python cung cấp nhiều phương thức chuỗi phụ gia cho phép bạn kiểm tra số lượng chuỗi con đích mà chuỗi chứa, để tìm kiếm các chất nền theo các điều kiện phức tạp hoặc xác định vị trí chỉ mục của chuỗi con trong văn bản của bạn.

Trong phần này, bạn sẽ bao gồm một số phương thức chuỗi bổ sung có thể giúp bạn tìm hiểu thêm về chuỗi con.

Bằng cách sử dụng

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4, bạn đã xác nhận rằng chuỗi chứa chuỗi con. Nhưng bạn đã không nhận được bất kỳ thông tin nào về vị trí của bộ nền.

Nếu bạn cần biết nơi nào trong chuỗi của mình, chuỗi con xảy ra, thì bạn có thể sử dụng

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên đối tượng chuỗi:

>>>

TypeError: argument of type 'NoneType' is not iterable
0

Khi bạn gọi

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.

Nhưng điều gì sẽ xảy ra nếu bạn muốn tìm thấy những sự xuất hiện khác của chuỗi con? Phương pháp

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 cũng có một đối số thứ hai có thể xác định tại vị trí chỉ mục để bắt đầu tìm kiếm. Bằng cách vượt qua các vị trí chỉ mục cụ thể, do đó bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định được:

>>>

TypeError: argument of type 'NoneType' is not iterable
1

Khi bạn gọi

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.

Nhưng điều gì sẽ xảy ra nếu bạn muốn tìm thấy những sự xuất hiện khác của chuỗi con? Phương pháp

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 cũng có một đối số thứ hai có thể xác định tại vị trí chỉ mục để bắt đầu tìm kiếm. Bằng cách vượt qua các vị trí chỉ mục cụ thể, do đó bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định được:

Khi bạn vượt qua một chỉ số bắt đầu mà qua lần xuất hiện đầu tiên của chuỗi con, thì các tìm kiếm Python bắt đầu từ đó. Trong trường hợp này, bạn có được một trận đấu khác chứ không phải

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
4.

>>>

TypeError: argument of type 'NoneType' is not iterable
2

Khi bạn gọi

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.

Nhưng điều gì sẽ xảy ra nếu bạn muốn tìm thấy những sự xuất hiện khác của chuỗi con? Phương pháp

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 cũng có một đối số thứ hai có thể xác định tại vị trí chỉ mục để bắt đầu tìm kiếm. Bằng cách vượt qua các vị trí chỉ mục cụ thể, do đó bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định được:

>>>

TypeError: argument of type 'NoneType' is not iterable
3

Khi bạn gọi

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.

Nhưng điều gì sẽ xảy ra nếu bạn muốn tìm thấy những sự xuất hiện khác của chuỗi con? Phương pháp

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 cũng có một đối số thứ hai có thể xác định tại vị trí chỉ mục để bắt đầu tìm kiếm. Bằng cách vượt qua các vị trí chỉ mục cụ thể, do đó bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định được:

Khi bạn vượt qua một chỉ số bắt đầu mà qua lần xuất hiện đầu tiên của chuỗi con, thì các tìm kiếm Python bắt đầu từ đó. Trong trường hợp này, bạn có được một trận đấu khác chứ không phải

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
4.

Điều đó có nghĩa là văn bản chứa chuỗi con nhiều lần. Nhưng nó có thường xuyên ở đó không?

Bạn có thể sử dụng

>>> raw_file_content = """Hi there and welcome.
... This is a special hidden file with a SECRET secret.
... I don't want to tell you The Secret,
... but I do want to secretly tell you that I have one."""

>>> "secret" in raw_file_content
True
3 để nhận câu trả lời của mình một cách nhanh chóng bằng cách sử dụng mã Python mô tả và thành ngữ:

Bạn đã sử dụng

>>> raw_file_content = """Hi there and welcome.
... This is a special hidden file with a SECRET secret.
... I don't want to tell you The Secret,
... but I do want to secretly tell you that I have one."""

>>> "secret" in raw_file_content
True
3 trên chuỗi chữ thường và chuyển phần phụ
fullstring = "StackAbuse"
substring = "tack"

if fullstring.find(substring) != -1:
    print("Found!")
else:
    print("Not found!")
8 làm đối số. Python đếm tần suất chuỗi con xuất hiện trong chuỗi và trả về câu trả lời. Văn bản chứa chuỗi con bốn lần. Nhưng những bộ nền này trông như thế nào?

Bạn có thể kiểm tra tất cả các chuỗi con bằng cách chia văn bản của bạn theo các đường viền từ mặc định và in các từ vào thiết bị đầu cuối của bạn bằng cách sử dụng vòng lặp

>>> raw_file_content = """Hi there and welcome.
... This is a special hidden file with a SECRET secret.
... I don't want to tell you The Secret,
... but I do want to secretly tell you that I have one."""

>>> "secret" in raw_file_content
True
6:

>>>

TypeError: argument of type 'NoneType' is not iterable
4

Khi bạn gọi

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.

Nhưng điều gì sẽ xảy ra nếu bạn muốn tìm thấy những sự xuất hiện khác của chuỗi con? Phương pháp

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 cũng có một đối số thứ hai có thể xác định tại vị trí chỉ mục để bắt đầu tìm kiếm. Bằng cách vượt qua các vị trí chỉ mục cụ thể, do đó bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định được:

>>>

TypeError: argument of type 'NoneType' is not iterable
5

Khi bạn gọi

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.

Nhưng điều gì sẽ xảy ra nếu bạn muốn tìm thấy những sự xuất hiện khác của chuỗi con? Phương pháp

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 cũng có một đối số thứ hai có thể xác định tại vị trí chỉ mục để bắt đầu tìm kiếm. Bằng cách vượt qua các vị trí chỉ mục cụ thể, do đó bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định được:

>>>

TypeError: argument of type 'NoneType' is not iterable
6

Khi bạn gọi

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.

Nhưng điều gì sẽ xảy ra nếu bạn muốn tìm thấy những sự xuất hiện khác của chuỗi con? Phương pháp

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 cũng có một đối số thứ hai có thể xác định tại vị trí chỉ mục để bắt đầu tìm kiếm. Bằng cách vượt qua các vị trí chỉ mục cụ thể, do đó bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định được:

>>>

TypeError: argument of type 'NoneType' is not iterable
7

Khi bạn gọi

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.

Nhưng điều gì sẽ xảy ra nếu bạn muốn tìm thấy những sự xuất hiện khác của chuỗi con? Phương pháp

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 cũng có một đối số thứ hai có thể xác định tại vị trí chỉ mục để bắt đầu tìm kiếm. Bằng cách vượt qua các vị trí chỉ mục cụ thể, do đó bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định được:

>>>

TypeError: argument of type 'NoneType' is not iterable
8

Khi bạn gọi

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.

Sử dụng

>>> title_cased_file_content = """Hi There And Welcome.
... This Is A Special Hidden File With A Secret Secret.
... I Don't Want To Tell You The Secret,
... But I Do Want To Secretly Tell You That I Have One."""

>>> "secret" in title_cased_file_content
False
6 với các nhóm khớp là một cách mạnh mẽ để trích xuất các chuỗi con từ văn bản của bạn. Nhưng bạn chỉ nhận được một danh sách các chuỗi, điều đó có nghĩa là bạn đã mất các vị trí chỉ mục mà bạn có quyền truy cập khi bạn đang sử dụng
>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
7.

Nếu bạn muốn giữ thông tin đó xung quanh, thì

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
9 có thể cung cấp cho bạn tất cả các trận đấu trong trình lặp:

>>>

TypeError: argument of type 'NoneType' is not iterable
9

Khi bạn sử dụng

>>> file_content = title_cased_file_content.lower()

>>> print(file_content)
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.

>>> "secret" in file_content
True
2 và chuyển nó một mẫu tìm kiếm và nội dung văn bản của bạn làm đối số, bạn có thể truy cập từng đối tượng
>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 có chứa chuỗi con, cũng như các vị trí chỉ mục bắt đầu và kết thúc của nó.

Bạn có thể nhận thấy rằng dấu câu hiển thị trong các kết quả này mặc dù bạn vẫn đang sử dụng nhóm bắt giữ. Điều đó bởi vì biểu diễn chuỗi của một đối tượng

>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 hiển thị toàn bộ trận đấu thay vì chỉ là nhóm chụp đầu tiên.

Nhưng đối tượng

>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 là một thùng chứa thông tin mạnh mẽ và, giống như bạn đã thấy trước đó, bạn có thể chỉ chọn thông tin mà bạn cần:

>>>

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
0

Khi bạn sử dụng

>>> file_content = title_cased_file_content.lower()

>>> print(file_content)
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.

>>> "secret" in file_content
True
2 và chuyển nó một mẫu tìm kiếm và nội dung văn bản của bạn làm đối số, bạn có thể truy cập từng đối tượng
>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 có chứa chuỗi con, cũng như các vị trí chỉ mục bắt đầu và kết thúc của nó.

Bạn có thể nhận thấy rằng dấu câu hiển thị trong các kết quả này mặc dù bạn vẫn đang sử dụng nhóm bắt giữ. Điều đó bởi vì biểu diễn chuỗi của một đối tượng

>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 hiển thị toàn bộ trận đấu thay vì chỉ là nhóm chụp đầu tiên.

Nhưng đối tượng

>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 là một thùng chứa thông tin mạnh mẽ và, giống như bạn đã thấy trước đó, bạn có thể chỉ chọn thông tin mà bạn cần:

Bằng cách gọi >>> file_content = title_cased_file_content.lower() >>> print(file_content) hi there and welcome. this is a special hidden file with a secret secret. i don't want to tell you the secret, but i do want to secretly tell you that i have one. >>> "secret" in file_content True 6 và chỉ định rằng bạn muốn nhóm chụp đầu tiên, bạn đã chọn từ bí mật mà không có dấu câu từ mỗi chuỗi con phù hợp.

Bạn có thể đi sâu vào chi tiết hơn với việc khớp chuỗi con của mình khi bạn sử dụng các biểu thức thông thường. Thay vì chỉ kiểm tra xem một chuỗi có chứa một chuỗi khác hay không, bạn có thể tìm kiếm các chất nền theo các điều kiện phức tạp.

Sử dụng các biểu thức thông thường với

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
9 là một cách tiếp cận tốt nếu bạn cần thông tin về các nền tảng hoặc nếu bạn cần tiếp tục làm việc với chúng sau khi bạn đã tìm thấy chúng trong văn bản. Nhưng nếu bạn làm việc với dữ liệu bảng thì sao? Đối với điều đó, bạn sẽ chuyển sang gấu trúc.pandas! In this example, you’ll work with a CSV file that contains fake company names and slogans. You can download the file below if you want to work along:

Tìm một chuỗi con trong cột DataFrame Pandas

>>>

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
1

Khi bạn sử dụng

>>> file_content = title_cased_file_content.lower()

>>> print(file_content)
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.

>>> "secret" in file_content
True
2 và chuyển nó một mẫu tìm kiếm và nội dung văn bản của bạn làm đối số, bạn có thể truy cập từng đối tượng
>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 có chứa chuỗi con, cũng như các vị trí chỉ mục bắt đầu và kết thúc của nó.

Bạn có thể nhận thấy rằng dấu câu hiển thị trong các kết quả này mặc dù bạn vẫn đang sử dụng nhóm bắt giữ. Điều đó bởi vì biểu diễn chuỗi của một đối tượng

>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 hiển thị toàn bộ trận đấu thay vì chỉ là nhóm chụp đầu tiên.

>>>

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
2

Khi bạn sử dụng

>>> file_content = title_cased_file_content.lower()

>>> print(file_content)
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.

>>> "secret" in file_content
True
2 và chuyển nó một mẫu tìm kiếm và nội dung văn bản của bạn làm đối số, bạn có thể truy cập từng đối tượng
>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 có chứa chuỗi con, cũng như các vị trí chỉ mục bắt đầu và kết thúc của nó.

Bạn có thể nhận thấy rằng dấu câu hiển thị trong các kết quả này mặc dù bạn vẫn đang sử dụng nhóm bắt giữ. Điều đó bởi vì biểu diễn chuỗi của một đối tượng

>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 hiển thị toàn bộ trận đấu thay vì chỉ là nhóm chụp đầu tiên.

>>>

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
3

Khi bạn sử dụng

>>> file_content = title_cased_file_content.lower()

>>> print(file_content)
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.

>>> "secret" in file_content
True
2 và chuyển nó một mẫu tìm kiếm và nội dung văn bản của bạn làm đối số, bạn có thể truy cập từng đối tượng
>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 có chứa chuỗi con, cũng như các vị trí chỉ mục bắt đầu và kết thúc của nó.

Bạn có thể nhận thấy rằng dấu câu hiển thị trong các kết quả này mặc dù bạn vẫn đang sử dụng nhóm bắt giữ. Điều đó bởi vì biểu diễn chuỗi của một đối tượng

>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
9 hiển thị toàn bộ trận đấu thay vì chỉ là nhóm chụp đầu tiên.

Nhưng đối tượng >>> if "secret" in raw_file_content: ... print("Found!") ... Found! 9 là một thùng chứa thông tin mạnh mẽ và, giống như bạn đã thấy trước đó, bạn có thể chỉ chọn thông tin mà bạn cần:

Bằng cách gọi

>>> file_content = title_cased_file_content.lower()

>>> print(file_content)
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.

>>> "secret" in file_content
True
6 và chỉ định rằng bạn muốn nhóm chụp đầu tiên, bạn đã chọn từ bí mật mà không có dấu câu từ mỗi chuỗi con phù hợp.
fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
4 membership operator
.

Bạn có thể đi sâu vào chi tiết hơn với việc khớp chuỗi con của mình khi bạn sử dụng các biểu thức thông thường. Thay vì chỉ kiểm tra xem một chuỗi có chứa một chuỗi khác hay không, bạn có thể tìm kiếm các chất nền theo các điều kiện phức tạp.string methods, which are often misused to check for substrings:

  • Sử dụng các biểu thức thông thường với
    fullstring = "StackAbuse"
    substring = "tack"
    
    try:
        fullstring.index(substring)
    except ValueError:
        print("Not found!")
    else:
        print("Found!")
    
    9 là một cách tiếp cận tốt nếu bạn cần thông tin về các nền tảng hoặc nếu bạn cần tiếp tục làm việc với chúng sau khi bạn đã tìm thấy chúng trong văn bản. Nhưng nếu bạn làm việc với dữ liệu bảng thì sao? Đối với điều đó, bạn sẽ chuyển sang gấu trúc.
  • Tìm một chuỗi con trong cột DataFrame Pandas

Nếu bạn làm việc với dữ liệu không đến từ một tệp văn bản đơn giản hoặc từ đầu vào của người dùng, nhưng từ tệp CSV hoặc bảng Excel, thì bạn có thể sử dụng phương pháp tương tự như đã thảo luận ở trên.regular expressions and a few functions in Python’s

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
9 module.

Tuy nhiên, có một cách tốt hơn để xác định ô nào trong một cột chứa một nền tảng: bạn sẽ sử dụng gấu trúc! Trong ví dụ này, bạn sẽ làm việc với một tệp CSV chứa tên và khẩu hiệu của công ty giả. Bạn có thể tải xuống tệp bên dưới nếu bạn muốn làm việc cùng:pandas DataFrame contain a substring .

Khi bạn làm việc với dữ liệu dạng bảng trong Python, nó thường tốt nhất để tải nó vào gấu trúc

>>> file_content = title_cased_file_content.lower()

>>> print(file_content)
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.

>>> "secret" in file_content
True
8 trước: