Hướng dẫn how do you check if a string contains a substring in python? - làm thế nào để bạn kiểm tra xem một chuỗi có chứa một chuỗi con 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.

Con người có một cách tiếp cận khác nhau đối với ngôn ngữ so với máy tính. Đây là lý do tại sao bạn sẽ thường muốn coi thường việc viết hoa khi bạn kiểm tra xem một chuỗi có chứa chất nền trong Python hay không.

Bạn có thể khái quát kiểm tra chuỗi con của mình bằng cách chuyển đổi toàn bộ văn bản đầu vào sang chữ thườ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

Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.

Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.

Tìm hiểu thêm về chuỗi con

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 là một cách tuyệt vời để kiểm tra mô tả xem có một chuỗi con trong một chuỗi hay không, nhưng nó không cung cấp cho bạn bất kỳ thông tin nào hơn thế. Nó rất hoàn hảo để kiểm tra có điều kiện, nhưng nếu bạn cần biết thêm về các nền tảng thì sao?

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

Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.

Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.

>>>

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

Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.

Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.

Tìm hiểu thêm về chuỗi con

>>>

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

Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.

Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.

>>>

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

Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.

Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.

Tìm hiểu thêm về chuỗi con

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 là một cách tuyệt vời để kiểm tra mô tả xem có một chuỗi con trong một chuỗi hay không, nhưng nó không cung cấp cho bạn bất kỳ thông tin nào hơn thế. Nó rất hoàn hảo để kiểm tra có điều kiện, nhưng nếu bạn cần biết thêm về các nền tảng thì sao?

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.

>>>

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

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:

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.

>>>

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

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
6

Có hai trận đấu tiềm năng trong văn bản của bạn, nhưng bạn chỉ khớp kết quả đầu tiên phù hợp với truy vấn của bạn. Khi bạn sử dụng

>>> if "secret" in raw_file_content:
...    print("Found!")
...
Found!
7, Python một lần nữa chỉ tìm thấy trận đấu đầu tiên. Điều gì sẽ xảy ra nếu bạn muốn tất cả các đề cập của
fullstring = "StackAbuse"
substring = "tack"

if fullstring.find(substring) != -1:
    print("Found!")
else:
    print("Not found!")
8 phù hợp với một điều kiện nhất định?

Để tìm tất cả các trận đấu bằng cách sử dụng

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
9, bạn có thể làm việc với
>>> 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:

>>>

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

Bằng cách 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, bạn có thể tìm thấy tất cả các trận đấu của mẫu trong văn bản của bạn. Python lưu tất cả các trận đấu dưới dạng chuỗi trong danh sách cho bạn.

Khi bạn sử dụng một nhóm bắt giữ, bạn có thể chỉ định phần nào của trận đấu bạn muốn giữ trong danh sách của mình bằng cách gói phần đó trong ngoặc đơn:

>>>

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

Bằng cách gói bí mật trong ngoặc đơn, bạn đã xác định một nhóm chụp duy nhất. Hàm

>>> 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
8 trả về một danh sách các chuỗi phù hợp với nhóm bắt giữ, miễn là có chính xác một nhóm chụp trong mẫu. Bằng cách thêm các dấu ngoặc đơn xung quanh bí mật, bạn đã quản lý để thoát khỏi dấu câu!

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

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.

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.

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! 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:

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:

>>>

fullstring = None
substring = "tack"

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

Trong khối mã này, bạn đã tải một tệp CSV chứa một nghìn hàng dữ liệu công ty giả vào một khung dữ liệu gấu trúc và kiểm tra năm hàng đầu tiên bằ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
9.

Sau khi bạn tải dữ liệu vào DataFrame, bạn có thể nhanh chóng truy vấn toàn bộ cột Pandas để lọc cho các mục có chứa chuỗi con:

>>>

fullstring = None
substring = "tack"

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

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

TypeError: argument of type 'NoneType' is not iterable
00 trên cột gấu trúc và chuyển nó phần phụ làm đối số để lọc cho các hàng có chứa chuỗi con.

Khi bạn làm việc với

TypeError: argument of type 'NoneType' is not iterable
00 và bạn cần các kịch bản trận đấu phức tạp hơn, bạn cũng có thể sử dụng các biểu thức thông thường! Bạn chỉ cần vượt qua mẫu tìm kiếm tuân thủ Regex làm đối số phụ:

>>>

fullstring = None
substring = "tack"

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

Trong đoạn mã này, bạn đã sử dụng cùng một mẫu mà bạn đã sử dụng trước đó để chỉ khớp với các từ có chứa bí mật nhưng sau đó tiếp tục với một hoặc nhiều ký tự từ (

TypeError: argument of type 'NoneType' is not iterable
02). Chỉ có một trong những công ty trong bộ dữ liệu giả này dường như hoạt động bí mật!

Bạn có thể viết bất kỳ mẫu Regex phức tạp nào và chuyển nó sang

TypeError: argument of type 'NoneType' is not iterable
00 để khắc từ cột gấu trúc của bạn chỉ các hàng mà bạn cần cho phân tích của mình.

Sự kết luận

Giống như một thợ săn kho báu dai dẳng, bạn đã tìm thấy mỗi

fullstring = "StackAbuse"
substring = "tack"

if fullstring.find(substring) != -1:
    print("Found!")
else:
    print("Not found!")
8, bất kể nó được ẩn đi đến mức nào! Trong quá trình này, bạn đã học được rằng cách tốt nhất để kiểm tra xem một chuỗi có chứa chuỗi con trong Python hay không là sử dụng toán tử thành viên
fullstring = None
substring = "tack"

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

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

Bạn cũng đã học cách sử dụng mô tả hai phương thức chuỗi khác, thường bị sử dụng sai để kiểm tra các chất nền:string methods, which are often misused to check for substrings:

  • >>> 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 để đếm các lần xuất hiện của chuỗi con trong chuỗi
  • from re import search
    
    fullstring = "StackAbuse"
    substring = "tack"
    
    if search(substring, fullstring):
        print "Found!"
    else:
        print "Not found!"
    
    9 để có được vị trí chỉ số của sự khởi đầu của chuỗi con

Sau đó, bạn đã khám phá cách tìm các chất nền theo các điều kiện nâng cao hơn với các biểu thức thông thường và một vài chức năng trong mô -đun Python tựa

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")
9.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.

Cuối cùng, bạn cũng đã tìm hiểu cách bạn có thể sử dụng phương thức DataFrame

TypeError: argument of type 'NoneType' is not iterable
00 để kiểm tra các mục nhập trong gấu trúc DataFrame chứa một chuỗi con.pandas DataFrame contain a substring .

Bây giờ bạn đã biết cách chọn cách tiếp cận thành ngữ nhất khi bạn làm việc với các nền tảng trong Python. Tiếp tục sử dụng phương pháp mô tả nhất cho công việc và bạn sẽ viết mã mà rất thú vị khi đọc và nhanh chóng để người khác hiểu.

Làm thế nào để bạn kiểm tra xem một chuỗi con có tồn tại trong một chuỗi không?

Bạn có thể sử dụng phương thức chứa (), indexof () và lastindexof () để kiểm tra xem một chuỗi có chứa một chuỗi khác trong java hay không. Nếu một chuỗi chứa một chuỗi khác thì nó được gọi là chuỗi con. Phương thức indexof () chấp nhận một chuỗi và trả về vị trí bắt đầu của chuỗi nếu nó tồn tại, nếu không, nó sẽ trả về -1.use contains(), indexOf() and lastIndexOf() method to check if one String contains another String in Java or not. If a String contains another String then it's known as a substring. The indexOf() method accepts a String and returns the starting position of the string if it exists, otherwise, it will return -1.