Hướng dẫn python only keep letters in string - python chỉ giữ các chữ cái trong chuỗi

Cách tốt nhất để loại bỏ tất cả các ký tự khỏi một chuỗi không có trong bảng chữ cái là gì? Ý tôi là, loại bỏ tất cả các không gian, sự thay đổi, dấu ngoặc, số, toán tử toán học ..

Ví dụ:

input: 'as32{ vd"s k!+'
output: 'asvdsk'

Hỏi ngày 11 tháng 12 năm 2015 lúc 0:16Dec 11, 2015 at 0:16

0

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

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
2, nhưng bạn không thực sự cần.

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'

Đã trả lời ngày 11 tháng 12 năm 2015 lúc 0:19Dec 11, 2015 at 0:19

Hướng dẫn python only keep letters in string - python chỉ giữ các chữ cái trong chuỗi

Timgebtimgebtimgeb

74.5K20 Huy hiệu vàng114 Huy hiệu bạc139 Huy hiệu đồng20 gold badges114 silver badges139 bronze badges

Nếu bạn muốn sử dụng biểu thức chính quy, điều này sẽ nhanh hơn

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)

In

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
3

Đã trả lời ngày 11 tháng 12 năm 2015 lúc 0:26Dec 11, 2015 at 0:26

Hướng dẫn python only keep letters in string - python chỉ giữ các chữ cái trong chuỗi

Nehemnehemnehem

Huy hiệu vàng 11.5k654 Huy hiệu bạc78 Huy hiệu đồng6 gold badges54 silver badges78 bronze badges

Dưới đây là một phương pháp sử dụng phạm vi ASCII để kiểm tra xem một ký tự ở bảng chữ cái trên/chữ thường (và nối nó vào một chuỗi nếu có):

s = 'as32{ vd"s k!+'
sfiltered = ''

for char in s:
    if((ord(char) >= 97 and ord(char) <= 122) or (ord(char) >= 65 and ord(char) <= 90)):
        sfiltered += char

Biến

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
4 sẽ hiển thị kết quả, đó là
import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
3 như mong đợi.

Đã trả lời ngày 11 tháng 12 năm 2015 lúc 0:36Dec 11, 2015 at 0:36

Hướng dẫn python only keep letters in string - python chỉ giữ các chữ cái trong chuỗi

Patrick Yupatrick YuPatrick Yu

9421 Huy hiệu vàng7 Huy hiệu bạc19 Huy hiệu đồng1 gold badge7 silver badges19 bronze badges

Biểu thức đơn giản này có được tất cả các chữ cái, bao gồm cả các chữ cái không ascii ok t áàÃéèêçĉ ... và nhiều chữ cái khác được sử dụng trong một số ngôn ngữ.

r"[^\W\d]+"

Nó có nghĩa là "nhận một chuỗi của một hoặc nhiều ký tự không phải là" các ký tự không phải là từ "hoặc một chữ số.

Đã trả lời ngày 28 tháng 4 lúc 3:16Apr 28 at 3:16

plpsanchezplpsanchezplpsanchez

Phù hiệu bạc năm 19733 silver badges10 bronze badges

Nếu bạn muốn bảo tồn các nhân vật như Áàãéèêçĉ được sử dụng trong nhiều ngôn ngữ trên khắp thế giới, hãy thử điều này:

import re
print re.sub('[\W\d_]+', yourString)

Đã trả lời ngày 2 tháng 6 lúc 14:36Jun 2 at 14:36

Cách tốt nhất để loại bỏ tất cả các ký tự khỏi một chuỗi không có trong bảng chữ cái là gì? Ý tôi là, loại bỏ tất cả các không gian, sự thay đổi, dấu ngoặc, số, toán tử toán học .., Đây là một phương pháp sử dụng phạm vi ASCII để kiểm tra xem một ký tự ở bảng chữ cái trên/chữ thường (và nối nó vào một chuỗi nếu có) :, Có cách nào tốt hơn để xác định một ràng buộc đối với các biến số nguyên dương sao cho không có hai biến nào giống nhau và được gán duy nhất một giá trị, Stack Overflow cho các nhóm nơi các nhà phát triển & công nghệ chia sẻ kiến ​​thức riêng tư với đồng nghiệp

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

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
2, nhưng bạn không thực sự cần.

>>> s = 'as32{ vd"s k!+' >>>
   ''.join(x
      for x in s
      if x.isalpha())
'asvdsk' >>>
filter(str.isalpha, s) # works in python - 2.7 'asvdsk' >>>
   ''.join(filter(str.isalpha, s)) # works in python3 'asvdsk'

Nếu bạn muốn sử dụng biểu thức chính quy, điều này sẽ nhanh hơn

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)

Dưới đây là một phương pháp sử dụng phạm vi ASCII để kiểm tra xem một ký tự ở bảng chữ cái trên/chữ thường (và nối nó vào một chuỗi nếu có):

s = 'as32{ vd"s k!+'
sfiltered = ''

for char in s:
   if ((ord(char) >= 97 and ord(char) <= 122) or(ord(char) >= 65 and ord(char) <= 90)):
      sfiltered += char

Biểu thức đơn giản này có được tất cả các chữ cái, bao gồm cả các chữ cái không ascii ok t áàÃéèêçĉ ... và nhiều chữ cái khác được sử dụng trong một số ngôn ngữ.

Nếu bạn muốn bảo tồn các nhân vật như Áàãéèêçĉ được sử dụng trong nhiều ngôn ngữ trên khắp thế giới, hãy thử điều này:

import re
print re.sub('[\W\d_]+', yourString)


Gợi ý: 2

Bạn có thể sử dụng một biểu thức thông thường để chỉ trích xuất các chữ cái (bảng chữ cái) từ một chuỗi trong Python. Bạn cũng có thể lặp lại các ký tự trong một chuỗi và sử dụng hàm isalpha () chuỗi để chỉ giữ các chữ cái trong một chuỗi., Trong hướng dẫn này, chúng tôi sẽ xem xét cách chỉ giữ các chữ cái (trích xuất bảng chữ cái) từ một chuỗi trong python với sự trợ giúp của các ví dụ., Lặp qua từng ký tự trong chuỗi đã cho của chúng tôi., Bạn có thể thấy rằng chuỗi kết quả chỉ chứa các chữ cái.

Hãy cùng nhìn vào một ví dụ.

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
0

Mã trên có thể được giảm xuống ít dòng hơn bằng cách sử dụng danh sách hiểu.

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
1


Gợi ý: 3

Vòng lặp qua chuỗi: Kiểm tra xem char có phải là bảng chữ cái hay không sử dụng phương thức chr.isalpha (). Thêm nó vào chuỗi trống. , Kiểm tra xem char có phải là bảng chữ cái hay không sử dụng phương thức chr.isalpha (). Thêm nó vào chuỗi trống. , Trong hướng dẫn này, chúng tôi sẽ học cách chỉ trích xuất các ký tự từ bất kỳ chuỗi nào trong Python. Chúng tôi sẽ tìm hiểu hai cách khác nhau để sử dụng hai phương thức sau :, Nhận đầu vào từ người dùng bằng phương thức Input ().

  • Nhận đầu vào từ người dùng bằng cách sử dụng
    import re
    s = 'as32{ vd"s k!+'
    print re.sub('[^a-zA-Z]+', '', s)
    
    7Method.method.
  • Tuyên bố một chuỗi trống để lưu trữ bảng chữ cái.
  • Vòng lặp qua chuỗi:
    • Nếu giá trị ASCII của char nằm trong khoảng từ 65 đến 90 hoặc 97 đến 122. Sử dụng
      import re
      s = 'as32{ vd"s k!+'
      print re.sub('[^a-zA-Z]+', '', s)
      
      8Method cho các giá trị ASCII của chars.ASCII value of char is between 65 and 90 or 97 and 122. Use the
      import re
      s = 'as32{ vd"s k!+'
      print re.sub('[^a-zA-Z]+', '', s)
      
      8method for the ASCII values of chars.
      • Thêm nó vào chuỗi trống
  • In chuỗi kết quả.

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
2

Input:

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
3

Đầu ra của chương trình:


Gợi ý: 4

Python | Chỉ trích xuất các ký tự từ chuỗi đã cho, Python | Trích xuất các từ từ chuỗi đã cho, Python | Trích xuất các chữ số từ chuỗi đã cho, Python | Tìm vị trí của một ký tự trong chuỗi đã cho

Output:

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
4


Gợi ý: 5

Hàm Isalpha sẽ kiểm tra xem ký tự đã cho có phải là bảng chữ cái hay không. Chúng tôi sẽ sử dụng điều này bên trong một vòng lặp cho vòng lặp sẽ lấy từng ký tự từ chuỗi đã cho và kiểm tra xem nó có phải là bảng chữ cái không. Phương thức tham gia sẽ chỉ thu được các ký tự hợp lệ thành kết quả. Chương trình Python để trích xuất các chuỗi với số lượng ký tự ít nhất từ ​​danh sách khác

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
5

Chạy mã trên cho chúng ta kết quả sau -

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
6

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
7


Gợi ý: 6

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
8


Gợi ý: 7

Một giải pháp đơn giản là sử dụng các biểu thức thông thường để loại bỏ các ký tự không phải là số lượng vô số khỏi một chuỗi. Ý tưởng là sử dụng ký tự đặc biệt \ w, phù hợp với bất kỳ ký tự nào không phải là ký tự từ., Đó là tất cả về việc loại bỏ các ký tự không phải là số đồngumeric khỏi một chuỗi trong Python. một chuỗi trong Python., & nbsp; Nếu biểu thức được sử dụng nhiều lần trong một chương trình, bạn nên biên dịch và lưu đối tượng biểu thức chính quy kết quả để sử dụng lại.

1. Sử dụng các biểu thức thông thường

Một giải pháp đơn giản là sử dụng các biểu thức thông thường để loại bỏ các ký tự không phải là số lượng vô số khỏi một chuỗi. Ý tưởng là sử dụng ký tự đặc biệt

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
9, phù hợp với bất kỳ ký tự nào không phải là ký tự từ.

Tải xuống & nbsp; & nbsp; mã

& nbsp;

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
9 tương đương với
s = 'as32{ vd"s k!+'
sfiltered = ''

for char in s:
    if((ord(char) >= 97 and ord(char) <= 122) or (ord(char) >= 65 and ord(char) <= 90)):
        sfiltered += char
1, loại trừ tất cả các số và chữ cái cùng với dấu gạch dưới. Nếu bạn cũng cần loại bỏ dấu gạch dưới, bạn có thể thích:
The
import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
9 is equivalent of
s = 'as32{ vd"s k!+'
sfiltered = ''

for char in s:
    if((ord(char) >= 97 and ord(char) <= 122) or (ord(char) >= 65 and ord(char) <= 90)):
        sfiltered += char
1, which excludes all numbers and letters along with underscores. If you need to remove underscores as well, you can do like:

2. Sử dụng hàm s = 'as32{ vd"s k!+' sfiltered = '' for char in s: if((ord(char) >= 97 and ord(char) <= 122) or (ord(char) >= 65 and ord(char) <= 90)): sfiltered += char 2

Một tùy chọn khác là lọc chuỗi khớp với hàm

s = 'as32{ vd"s k!+'
sfiltered = ''

for char in s:
    if((ord(char) >= 97 and ord(char) <= 122) or (ord(char) >= 65 and ord(char) <= 90)):
        sfiltered += char
2. Nó trả về đúng nếu tất cả các ký tự trong chuỗi là chữ và số khác.


Gợi ý: 8

Isalpha Python là một phương thức chuỗi trả về đúng hay sai, kiểm tra xem một chuỗi chỉ bao gồm các ký tự bảng chữ cái. Nói cách khác, isalpha () kiểm tra xem một chuỗi chỉ chứa các chữ cái. Chỉ bao gồm các chữ cái và số, không có ký tự đặc biệt hoặc dấu câu và trả về đúng hoặc sai.

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
9

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
0

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
1


Làm thế nào để bạn nhập chỉ các chữ cái trong Python?

Chỉ cho phép các chữ cái khi lấy đầu vào của người dùng:..
Sử dụng vòng lặp thời gian để lặp lại cho đến khi người dùng nhập các chữ cái ..
Sử dụng str. phương thức isalpha () để kiểm tra xem người dùng chỉ nhập chữ cái chưa ..
Nếu điều kiện được đáp ứng, thoát ra khỏi vòng lặp ..

Làm thế nào để bạn lưu trữ bảng chữ cái trong Python?

Cách dễ nhất để tải một danh sách tất cả các chữ cái của bảng chữ cái là sử dụng chuỗi.ascii_letters, String.ascii_lowercase và String.ascii_uppercase.use the string. ascii_letters , string. ascii_lowercase , and string. ascii_uppercase instances.

Làm cách nào để bỏ qua các ký tự không bảng chữ cái trong Python?

Sử dụng phương thức isAlNum () để loại bỏ tất cả các ký tự không phải là đồng bằng trong chuỗi python.Chúng ta có thể sử dụng phương thức isalnum () để kiểm tra xem một ký tự hoặc chuỗi đã cho có phải là chữ và số hay không.Chúng ta có thể so sánh từng ký tự riêng lẻ từ một chuỗi và nếu đó là chữ và số, thì chúng ta kết hợp nó bằng hàm nối ().. We can use the isalnum() method to check whether a given character or string is alphanumeric or not. We can compare each character individually from a string, and if it is alphanumeric, then we combine it using the join() function.

Làm cách nào để in chỉ bảng chữ cái trong Python?

Sử dụng chr ...
Nhận đầu vào từ người dùng bằng phương thức input () ..
Tuyên bố một chuỗi trống để lưu trữ bảng chữ cái ..
Vòng lặp qua chuỗi: Kiểm tra xem char là bảng chữ cái hay không sử dụng chr.Phương thức isalpha ().Thêm nó vào chuỗi trống ..
In chuỗi kết quả ..