Hướng dẫn how to check if string has alphabets in python - cách kiểm tra xem chuỗi có bảng chữ cái trong python không

114

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.

Việc triển khai Python thuần túy tốt nhất để kiểm tra xem một chuỗi có chứa bất kỳ chữ cái nào từ bảng chữ cái không?

string_1 = "[555].555-5555"
string_2 = "[555] 555 - 5555 ext. 5555

Trong đó

re.search['[a-zA-Z]', the_string]
3 sẽ trả lại
re.search['[a-zA-Z]', the_string]
4 vì không có chữ cái trong bảng chữ cái trong đó và
re.search['[a-zA-Z]', the_string]
5 sẽ trả lại
re.search['[a-zA-Z]', the_string]
6 vì có thư.

Jbernardo

31.2K10 Huy hiệu vàng87 Huy hiệu bạc112 Huy hiệu đồng10 gold badges87 silver badges112 bronze badges

hỏi ngày 31 tháng 1 năm 2012 lúc 0:29Jan 31, 2012 at 0:29

4

Regex nên là một cách tiếp cận nhanh chóng:

re.search['[a-zA-Z]', the_string]

Đã trả lời ngày 31 tháng 1 năm 2012 lúc 0:42Jan 31, 2012 at 0:42

JbernardojbernardoJBernardo

31.2K10 Huy hiệu vàng87 Huy hiệu bạc112 Huy hiệu đồng10 gold badges87 silver badges112 bronze badges

9

hỏi ngày 31 tháng 1 năm 2012 lúc 0:29

>>> string_1 = "[555].555-5555"
>>> string_2 = "[555] 555 - 5555 ext. 5555"
>>> any[c.isalpha[] for c in string_1]
False
>>> any[c.isalpha[] for c in string_2]
True

Regex nên là một cách tiếp cận nhanh chóng:Jan 31, 2012 at 0:31

Đã trả lời ngày 31 tháng 1 năm 2012 lúc 0:42DSM

Jbernardojbernardo62 gold badges574 silver badges481 bronze badges

8

Bạn nghĩ thế nào về:

Đã trả lời ngày 31 tháng 1 năm 2012 lúc 0:31

>>> z = "[555] 555 - 5555 ext. 5555"
>>> z.isupper[] or z.islower[]
True

DSMDSM

>>> z= "[555].555-5555"
>>> z.isupper[] or z.islower[]
False
>>> 

328K62 Huy hiệu vàng574 Huy hiệu bạc481 Huy hiệu Đồng

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

re.search['[a-zA-Z]', the_string]
7 trên chuỗi của mình để xem nó có chứa một số chữ cái viết thường không [trong số các ký tự khác].
re.search['[a-zA-Z]', the_string]
8 Nó với
re.search['[a-zA-Z]', the_string]
9 để kiểm tra xem có chứa một số chữ cái viết hoa:

Dưới đây: Các chữ cái trong chuỗi: Kiểm tra mang lại đúng

Dưới đây: Không có chữ cái trong chuỗi: Kiểm tra mang lại sai.3 gold badges29 silver badges38 bronze badges

Không được trộn lẫn với

>>> string_1 = "[555].555-5555"
>>> string_2 = "[555] 555 - 5555 ext. 5555"
>>> any[c.isalpha[] for c in string_1]
False
>>> any[c.isalpha[] for c in string_2]
True
0, chỉ trả lại
re.search['[a-zA-Z]', the_string]
6 nếu tất cả các ký tự là chữ cái, đó không phải là thứ bạn muốn.Mar 24, 2017 at 15:08

6

Lưu ý rằng câu trả lời của Barm hoàn thành của tôi một cách độc đáo, vì của tôi không xử lý tốt trường hợp hỗn hợp.
His approach will work, but only if the text contains purely lower- or uppercase letters:

>>> text = "[555].555-5555 extA. 5555"
>>> text.islower[]
False
>>> text.isupper[]
False

John Strood

>>> string1 = "[555].555-5555 extA. 5555"
>>> string2 = '555 [234] - 123.32   21'

>>> string1.upper[].isupper[]
True
>>> string2.upper[].isupper[]
False

Dưới đây: Các chữ cái trong chuỗi: Kiểm tra mang lại đúng

Dưới đây: Không có chữ cái trong chuỗi: Kiểm tra mang lại sai.3 gold badges29 silver badges38 bronze badges

Không được trộn lẫn với

>>> string_1 = "[555].555-5555"
>>> string_2 = "[555] 555 - 5555 ext. 5555"
>>> any[c.isalpha[] for c in string_1]
False
>>> any[c.isalpha[] for c in string_2]
True
0, chỉ trả lại
re.search['[a-zA-Z]', the_string]
6 nếu tất cả các ký tự là chữ cái, đó không phải là thứ bạn muốn.Nov 23, 2017 at 10:40

Lưu ý rằng câu trả lời của Barm hoàn thành của tôi một cách độc đáo, vì của tôi không xử lý tốt trường hợp hỗn hợp.Barm

John Strood4 silver badges11 bronze badges

1.7593 huy hiệu vàng29 Huy hiệu bạc38 Huy hiệu đồng

import re

print re.search['[a-zA-Z]+',string]

Đã trả lời ngày 24 tháng 3 năm 2017 lúc 15:08Jan 31, 2012 at 0:50

Tôi thích câu trả lời được cung cấp bởi @jean-françois-fabre, nhưng nó không đầy đủ. Cách tiếp cận của anh ấy sẽ hoạt động, nhưng chỉ khi văn bản chứa các chữ cái hoàn toàn thấp hơn hoặc chữ hoa:shibly

Cách tiếp cận tốt hơn là đầu tiên trên hoặc thường xuyên chuỗi của bạn và sau đó kiểm tra.35 gold badges102 silver badges164 bronze badges

Đã trả lời ngày 23 tháng 11 năm 2017 lúc 10:40

Barmbarm

import re

3844 Huy hiệu bạc11 Huy hiệu đồng

re.search['[a-zA-Z]', string]

Bạn có thể sử dụng biểu thức thông thường như thế này:

re.search['[a-zA-Z]', the_string]
0

Đã trả lời ngày 31 tháng 1 năm 2012 lúc 0:50

re.search['[a-zA-Z]', the_string]
1

Có vẻ xấu tínhabout half time as compared to iterating isalpha[] even for a relatively small string.
Hence for larger strings and greater counts, re would be significantly more efficient.

11.9K35 Huy hiệu vàng102 Huy hiệu bạc164 Huy hiệu đồngwins here. In every loop it is significantly faster than re.search[] and it doesn't even require any additional imports.

Tôi đã kiểm tra từng phương pháp ở trên để tìm thấy nếu bất kỳ bảng chữ cái nào được chứa trong một chuỗi nhất định và tìm ra thời gian xử lý trung bình trên mỗi chuỗi trên một máy tính tiêu chuẩn.Dec 12, 2019 at 9:06

~ 250 ns choMihir Verma

~ 3 …s cho4 silver badges10 bronze badges

2

~ 6 …s cho

re.search['[a-zA-Z]', the_string]
2

~ 850 ns chomatch

Đối diện với bị cáo buộc, nhập RE mất thời gian không đáng kể và tìm kiếm với RE chỉ mất khoảng một nửa so với isalpha [] lặp đi lặp lại ngay cả đối với một chuỗi tương đối nhỏ. Do đó đối với các chuỗi lớn hơn và số lượng lớn hơn, RE sẽ hiệu quả hơn đáng kể.Apr 12, 2018 at 13:18

Làm thế nào để bạn kiểm tra xem một chuỗi có chứa bảng chữ cái không?

Regex có thể được sử dụng để kiểm tra một chuỗi cho bảng chữ cái.Sợi dây.Phương thức khớp [] được sử dụng để kiểm tra xem chuỗi có khớp với regex đã cho hay không ...
Nhận chuỗi ..
Khớp chuỗi với regex bằng cách sử dụng match [] ..
Trả về đúng là phù hợp ..

Làm thế nào để bạn kiểm tra xem một chuỗi chỉ chứa bảng chữ cái và không gian trong Python?

Phương thức số 1: Sử dụng tất cả [] + ISSPace [] + isalpha [] Đây là một trong những cách mà nhiệm vụ này có thể được thực hiện.Trong đó, chúng tôi so sánh chuỗi cho tất cả các yếu tố chỉ là bảng chữ cái hoặc không gian.Using all[] + isspace[] + isalpha[] This is one of the way in which this task can be performed. In this, we compare the string for all elements being alphabets or space only.

Bài Viết Liên Quan

Chủ Đề