Hướng dẫn how do i check if two characters are in a string in python? - làm cách nào để kiểm tra xem hai ký tự có trong một chuỗi trong python không?

Nếu bạn muốn kết hợp chính xác của các từ thì hãy xem xét từ mã thông báo từ chuỗi đích. Tôi sử dụng Word_Tokenize được đề xuất từ ​​NLTK:

from nltk.tokenize import word_tokenize

Đây là chuỗi mã thông báo từ câu trả lời được chấp nhận:

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']

Câu trả lời được chấp nhận được sửa đổi như sau:

matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]

Như trong câu trả lời được chấp nhận, từ "nhiều hơn" vẫn còn khớp. Tuy nhiên, nếu "MO" trở thành một chuỗi khớp, câu trả lời được chấp nhận vẫn tìm thấy một trận đấu. Đó là một hành vi mà tôi không muốn.

matches_2 = ["mo", "wholesome", "milk"]
[x in a_string for x in matches_1]
Out[43]: [True, False, False]

Sử dụng mã thông báo Word, "Mo" không còn khớp nữa:

[x in tokens for x in matches_2]
Out[44]: [False, False, False]

Đó là hành vi bổ sung mà tôi muốn. Câu trả lời này cũng trả lời câu hỏi trùng lặp ở đây.

Kiểm tra xem chuỗi có chứa chất nền trong Python không

Kiểm tra xem một chuỗi có chứa chuỗi con có phải là một trong những tác vụ phổ biến nhất trong bất kỳ ngôn ngữ lập trình nào. Python cung cấp nhiều cách để kiểm tra xem một chuỗi có chứa chuỗi con không. Cách đơn giản và nhanh nhất để kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python có sử dụng toán tử "trong" hay không, được sử dụng làm toán tử so sánh. Một số phương thức Python khác như Find (), Index (), Count (), v.v. cũng giúp kiểm tra xem một chuỗi có chứa chuỗi con không.contains a substring is one of the most common tasks in any programming language. Python offers many ways to check if a string contains a substring. The simplest and fastest way to check whether a string contains a substring or not in Python is using the "in" operator , which is used as a comparison operator . Some other Python methods such as find(), index(), count() etc. also help to Check if a string contains a substring.

Sử dụng toán tử "In" của Python

Cách đơn giản và nhanh nhất để kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python là toán tử "trong". Toán tử này trả về true nếu chuỗi chứa các ký tự, nếu không, nó sẽ trả về sai.fastest way to check whether a string contains a substring or not in Python is the "in" operator . This operator returns true if the string contains the characters, otherwise, it returns false .

đầu ra

Toán tử Python "In" có hai đối số, một ở bên trái và một bên phải và trả về true nếu chuỗi đối số bên trái được chứa trong chuỗi đối số bên phải."in" operator takes two arguments, one on the left and one on the right, and returns True if the left argument string is contained within the right argument string.

Thêm về toán tử "In"

Hướng dẫn how do i check if two characters are in a string in python? - làm cách nào để kiểm tra xem hai ký tự có trong một chuỗi trong python không?

Lưu ý: Toán tử "In" là trường hợp nhạy cảm, nó sẽ xử lý các ký tự chữ hoa và các ký tự thường khác nhau.case sensitive i.e, it will treat the Uppercase characters and Lowercase characters differently.

__contains __ () hàm

Lớp Chuỗi Python có phương thức __Contains __ () mà chúng ta có thể sử dụng để kiểm tra xem nó có chứa chuỗi khác hay không. Khi chúng ta sử dụng Python "trong" toán tử, bên trong, nó gọi __Contains __ () hàm. Phương thức __contains__ định nghĩa cách thức hoạt động của lớp khi chúng xuất hiện ở phía bên phải của in và không trong toán tử. Chúng ta cũng có thể sử dụng chức năng này trực tiếp, nhưng đừng. Các phương pháp bắt đầu với dấu gạch dưới được coi là riêng tư về mặt ngữ nghĩa, tuy nhiên bạn nên sử dụng trong nhà điều hành cho mục đích đọc.__contains__() method that we can use to check if it contains another string or not. When we use Python "in" operator , internally it calls __contains__() function. The __contains__ method defines how instances of class behave when they appear at right side of in and not in operator. We can use this function directly too, but don't . Methods that start with underscores are considered semantically private , however it's recommended to use in operator for readability purposes.

Sử dụng phương thức str.find () của Python

Một phương thức khác bạn có thể sử dụng là phương thức chuỗi.find (). Phương thức Find () đánh giá nếu chuỗi chứa một chuỗi con. Nếu có, phương thức Find () trả về chỉ số bắt đầu của một chuỗi con trong chuỗi nếu không nó sẽ trả về -1.string.find() method . The find() method evaluate if the string contains a substring . If it does, the find() method returns the starting index of a substring within the string otherwise it returns -1 .

đầu ra

Thêm phương thức find ()

Hướng dẫn how do i check if two characters are in a string in python? - làm cách nào để kiểm tra xem hai ký tự có trong một chuỗi trong python không?

Sử dụng phương thức str.find () là cách ít pythonic, nhưng nó vẫn được chấp nhận. Nó dài hơn và khó hiểu hơn một chút, nhưng nó vẫn hoàn thành công việc.str.find() method is the less Pythonic way , but it's still accepted. It's longer and a little bit more confusing, but it still gets the job done.

Sử dụng biểu thức thông thường Python

Biểu thức chính quy được sử dụng rộng rãi để khớp mẫu. Python có một gói tích hợp có tên Re, có thể được sử dụng để làm việc với các biểu thức thông thường. Mô -đun RE chứa một hàm gọi là search (), nó có thể được sử dụng để kiểm tra xem một chuỗi có chứa mẫu tìm kiếm được chỉ định không.pattern matching . Python has a built-in package called re , which can be used to work with Regular Expressions . The re module contains a function called search() , it can be used to check if a string contains the specified search pattern .

thí dụ

đầu ra

Thêm phương thức find ()

Sử dụng phương thức str.find () là cách ít pythonic, nhưng nó vẫn được chấp nhận. Nó dài hơn và khó hiểu hơn một chút, nhưng nó vẫn hoàn thành công việc.number of occurrences of a specific substring in a string, then you can use Python count() method . If the substring is not found in a string, the function returns 0 .

Hướng dẫn how do i check if two characters are in a string in python? - làm cách nào để kiểm tra xem hai ký tự có trong một chuỗi trong python không?


Kiểm tra xem một chuỗi có chứa một tập hợp các ký tự không

Tín dụng: Jürgen Hermann, Horst Hansen

Vấn đề

Bạn cần kiểm tra sự xuất hiện của bất kỳ bộ ký tự nào trong chuỗi.

Dung dịch

Giải pháp khái quát hóa cho bất kỳ chuỗi nào (không chỉ là một chuỗi) và bất kỳ tập hợp nào (bất kỳ đối tượng nào trong đó có thể kiểm tra thành viên với toán tử

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
5, không chỉ là một trong các ký tự):

def containsAny(str, set):
    """ Check whether sequence str contains ANY of the items in set. """
    return 1 in [c in str for c in set]

def containsAll(str, set):
    """ Check whether sequence str contains ALL of the items in set. """
    return 0 not in [c in str for c in set]

Thảo luận

Mặc dù các phương thức chuỗi

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
6 và
a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
7 có thể kiểm tra các lần xuất hiện của chuỗi con, không có chức năng nào được tạo sẵn để kiểm tra sự xuất hiện trong một chuỗi của một tập hợp các ký tự.

Trong khi làm việc với một điều kiện để kiểm tra xem một chuỗi có chứa các ký tự đặc biệt được sử dụng trong hàm thư viện tiêu chuẩn

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
8 hay không, tôi đã đưa ra mã trên (với sự trợ giúp từ kênh OpenProjects IRC
a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
9). Được viết theo cách này, nó thực sự tương thích với suy nghĩ của con người, mặc dù bạn có thể không đưa ra mã đó bằng trực giác. Đó thường là trường hợp với sự hiểu biết danh sách.

Mã sau đây tạo danh sách các giá trị ____ 20/________ 21, một cho mỗi mục trong tập hợp:

[c in str for c in set]

Sau đó, mã này kiểm tra xem có ít nhất một giá trị thực trong danh sách đó không:

1 in [c in str for c in set]

Tương tự, điều này kiểm tra xem không có giá trị giả nào có trong danh sách:

0 not in [c in str for c in set]

Các ví dụ sử dụng được sử dụng tốt nhất dưới dạng các bài kiểm tra đơn vị được gắn vào tệp nguồn

matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
2 của mô -đun này, với thành ngữ thông thường để đảm bảo rằng các thử nghiệm thực thi nếu mô -đun chạy dưới dạng tập lệnh chính:

if _ _name_ _ == "_ _main_ _":
    # unit tests, must print "OK!" when run
    assert containsAny('*.py', '*?[]')
    assert not containsAny('file.txt', '*?[]')
    assert containsAll('43221', '123')
    assert not containsAll('134', '123')
    print "OK!"

Tất nhiên, trong khi các thành ngữ trước đó gọn gàng, có những lựa chọn thay thế (luôn luôn ở đó?). Dưới đây là những người ở cơ bản nhất và do đó, theo một nghĩa nào đó, những người thay thế pythonic nhất:

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
0

Dưới đây là một số lựa chọn thay thế đảm bảo vòng lặp tối thiểu (lợi nhuận sớm nhất có thể). Đây là những điều súc tích nhất và do đó, theo một nghĩa nào đó, mạnh mẽ nhất:

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
1

Dưới đây là một số biến thể mỏng hơn của loại sau dựa vào một phương pháp đặc biệt chỉ cung cấp cho các đối tượng chỉ trong Python 2.2 trở lên:

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
2

Và đây là một biến thể khó khăn dựa vào chức năng cũng có sẵn trong 2.0:

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
3

May mắn thay, cách tiếp cận khá khó khăn này thiếu một biến thể rõ ràng ngay lập tức áp dụng để thực hiện

matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
3. Tuy nhiên, một sơ đồ khó khăn cuối cùng, dựa trên khả năng xóa tất cả các ký tự trong một bộ, áp dụng cho cả hai chức năng:

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
4

Thủ thuật này ít nhất có một số độ sâu, nó dựa vào

matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
5 là phần sau của
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
6 được tạo thành từ các ký tự không phải trong
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
7. Nếu chuỗi con đó có cùng độ dài với
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
6, thì không có ký tự nào bị xóa bởi
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
9, do đó, không có ký tự của
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
6 là trong
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
7. Ngược lại, nếu chuỗi con đó có độ dài 0, tất cả các ký tự đã bị xóa, vì vậy tất cả các ký tự của
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
6 đều ở trong
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
7. Phương pháp
matches_2 = ["mo", "wholesome", "milk"]
[x in a_string for x in matches_1]
Out[43]: [True, False, False]
4 của các đối tượng chuỗi tiếp tục xuất hiện một cách tự nhiên khi người ta muốn coi các chuỗi là bộ ký tự, một phần vì nó rất nhanh và một phần vì nó rất tiện dụng và linh hoạt. Xem Công thức 3.8 cho một ứng dụng tương tự khác.

Một quan sát cuối cùng là những cách khác nhau để tiếp cận nhiệm vụ có mức độ tổng quát rất khác nhau. Ở một thái cực, các cách tiếp cận sớm nhất, chỉ dựa vào

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
5 (để lặp lại trên
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
7 và để thành viên trong
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
6) là chung nhất; Chúng hoàn toàn không giới hạn trong việc xử lý chuỗi và chúng đưa ra nhu cầu thực sự tối thiểu về các biểu diễn của
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
7 và
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
6. Ở một thái cực khác, cách tiếp cận cuối cùng, dựa vào phương pháp
matches_2 = ["mo", "wholesome", "milk"]
[x in a_string for x in matches_1]
Out[43]: [True, False, False]
4, chỉ hoạt động khi cả
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
7 và
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
6 là chuỗi hoặc bắt chước các đối tượng chuỗi gần gũi.

Xem thêm

Công thức 3,8; Tài liệu cho các hàm

matches_2 = ["mo", "wholesome", "milk"]
[x in a_string for x in matches_1]
Out[43]: [True, False, False]
4 và
[x in tokens for x in matches_2]
Out[44]: [False, False, False]
4 trong mô -đun
[x in tokens for x in matches_2]
Out[44]: [False, False, False]
5 trong tham chiếu thư viện.Library Reference.

Sử dụng hàm bất kỳ () để kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác không, ví dụ:Nếu bất kỳ (chuỗi con trong my_str cho chuỗi con trong list_of_strings):.Hàm bất kỳ () sẽ trả về true nếu ít nhất một trong nhiều chuỗi tồn tại trong chuỗi.Đã sao chép!

Làm thế nào để bạn kiểm tra nhiều ký tự trong một chuỗi?, e.g. if any(substring in my_str for substring in list_of_strings): . The any() function will return True if at least one of the multiple strings exists in the string. Copied!

Kiểm tra xem một chuỗi chứa nhiều từ khóa trong Java.

Kiểm tra xem một chuỗi chứa nhiều từ khóa trong Java..
Introduction..
Ví dụ của chúng tôi ..
Sử dụng chuỗi.chứa().
Sử dụng chuỗi.Chỉ số().
Sử dụng các biểu thức chính quy ..
Sử dụng Java 8 và Danh sách ..
Sử dụng thuật toán AHO-Corasick ..
Conclusion..

Bạn có thể sử dụng == cho các chuỗi trong Python không?

==: Toán tử này kiểm tra xem hai chuỗi có bằng nhau không.! =: Toán tử này kiểm tra xem hai chuỗi không bằng nhau.This operator checks whether two strings are equal. !=: This operator checks whether two strings are not equal.

Làm cách nào để so sánh hai ký tự trong Python?

Điều này được thực hiện bằng cách sử dụng các toán tử sau:..
==: Điều này kiểm tra xem hai chuỗi có bằng không ..
! = ....
< : This checks if the string on its left is smaller than that on its right..
Làm thế nào để bạn kiểm tra xem nhiều ký tự đang ở trong một chuỗi python?