Hướng dẫn python regex keep only letters and spaces - python regex chỉ giữ các chữ cái và dấu cách

Tôi có chuỗi ví dụ này:

whitelist = set['abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ']
myStr = "happy t00 go 129.129$%^&*["
answer = ''.join[filter[whitelist.__contains__, myStr]]
2 và tôi chỉ muốn giữ các khoảng trống và chữ cái. Tất cả những gì tôi đã có thể đưa ra cho đến nay là khá hiệu quả là:

print[re.sub["\d", "", 'happy t00 go 129.129'.replace['.', '']]]

Nhưng nó chỉ cụ thể cho chuỗi ví dụ của tôi. Làm thế nào có thể xóa tất cả các ký tự khác ngoài chữ cái và không gian?

Đã hỏi ngày 4 tháng 2 năm 2014 lúc 22:12Feb 4, 2014 at 22:12

1

whitelist = set['abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ']
myStr = "happy t00 go 129.129$%^&*["
answer = ''.join[filter[whitelist.__contains__, myStr]]

Output:

>>> answer
'happy t go '

Đã trả lời ngày 4 tháng 2 năm 2014 lúc 22:15Feb 4, 2014 at 22:15

inspectorG4dgetinspectorG4dgetinspectorG4dget

107K25 Huy hiệu vàng140 Huy hiệu bạc236 Huy hiệu Đồng25 gold badges140 silver badges236 bronze badges

4

Sử dụng một thiết lập bổ sung:

re.sub[r'[^a-zA-Z ]+', '', 'happy t00 go 129.129']

Đã trả lời ngày 4 tháng 2 năm 2014 lúc 22:15Feb 4, 2014 at 22:15

107K25 Huy hiệu vàng140 Huy hiệu bạc236 Huy hiệu ĐồngJoel Cornett

Sử dụng một thiết lập bổ sung:9 gold badges61 silver badges85 bronze badges

Joel Cornettjoel Cornett

from string import ascii_letters

allowed = set[ascii_letters + ' ']
myStr = 'happy t00 go 129.129'
answer = ''.join[l for l in myStr if l in allowed]
answer
# >>> 'happy t go '

23.6K9 Huy hiệu vàng61 Huy hiệu bạc85 Huy hiệu Đồng

Biến thể nhỏ trên phương thức của Thanh tra

import re
from string import ascii_letters, digits
myStr = 'happy t00 go 129.129'*20
allowed = set[ascii_letters + ' ']

# Generator
%timeit answer = ''.join[l for l in myStr if l in allowed]

# filter/__contains__
%timeit answer = ''.join[filter[allowed.__contains__, myStr]]

# Regex
pat = re.compile[r'[^a-zA-Z ]+']
%timeit answer = re.sub[pat, '', myStr]

So sánh hiệu suất:
43.3 µs ± 7.48 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
26 µs ± 509 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]

.Mar 26, 2018 at 7:46

53 …s ± 6,43 Pha mỗi vòng [trung bình ± std. Dev. Của 7 lần chạy, 10000 vòng mỗi] Vòng lặp [trung bình ± std. Dev. của 7 lần chạy, 10000 vòng mỗi]Alex L

Đã trả lời ngày 26 tháng 3 năm 2018 lúc 7:464 gold badges46 silver badges75 bronze badges

1

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àm thế nào để trích xuất bảng chữ cái từ một chuỗi trong Python?

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 chuỗi

whitelist = set['abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ']
myStr = "happy t00 go 129.129$%^&*["
answer = ''.join[filter[whitelist.__contains__, myStr]]
4 để chỉ giữ các chữ cái trong một chuỗi.

Hãy cùng xem xét cả hai phương pháp với sự trợ giúp của các ví dụ -

Trích xuất bảng chữ cái từ một chuỗi bằng regex

Bạn có thể sử dụng biểu thức thông thường

whitelist = set['abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ']
myStr = "happy t00 go 129.129$%^&*["
answer = ''.join[filter[whitelist.__contains__, myStr]]
5 để khớp với các ký tự không phải alphabet trong chuỗi và thay thế chúng bằng một chuỗi trống bằng hàm
whitelist = set['abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ']
myStr = "happy t00 go 129.129$%^&*["
answer = ''.join[filter[whitelist.__contains__, myStr]]
6. Chuỗi kết quả sẽ chỉ chứa các chữ cái.

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

import re

# string with letters, numbers, and special characters
s = "[email protected]"
# keep only letters
res = re.sub[r'[^a-zA-Z]', '', s]
print[res]

Output:

BuckyBarnes

Bạn có thể thấy rằng chuỗi kết quả chỉ chứa các chữ cái.

Sử dụng hàm
whitelist = set['abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ']
myStr = "happy t00 go 129.129$%^&*["
answer = ''.join[filter[whitelist.__contains__, myStr]]
4

Ngoài ra, bạn có thể sử dụng hàm chuỗi

whitelist = set['abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ']
myStr = "happy t00 go 129.129$%^&*["
answer = ''.join[filter[whitelist.__contains__, myStr]]
4 để xóa các ký tự không alphabet khỏi chuỗi. Sử dụng các bước sau -

  1. Tạo một chuỗi trống để lưu trữ chuỗi kết quả của chúng tôi chỉ bằng các chữ cái.
  2. Lặp qua mỗi ký tự trong chuỗi đã cho của chúng tôi.
  3. Đối với mỗi ký tự, hãy kiểm tra xem nó có bảng chữ cái sử dụng hàm
    whitelist = set['abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ']
    myStr = "happy t00 go 129.129$%^&*["
    answer = ''.join[filter[whitelist.__contains__, myStr]]
    
    4 không. Nếu là, sau đó thêm ký tự vào chuỗi kết quả của chúng tôi.

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

# string with letters, numbers, and special characters
s = "[email protected]"
# keep only letters
res = ""
for ch in s:
    if ch.isalpha[]:
        res += ch
print[res]

Output:

BuckyBarnes

Chuỗi kết quả chỉ chứa các chữ cái từ chuỗi gốc.

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.

whitelist = set['abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ']
myStr = "happy t00 go 129.129$%^&*["
answer = ''.join[filter[whitelist.__contains__, myStr]]
0

Output:

BuckyBarnes

Chúng tôi nhận được kết quả tương tự như trên.

Bạn cũng có thể quan tâm đến -

  • Python - Kiểm tra xem chuỗi chỉ chứa các chữ cái
  • Python - Xóa các ký tự không phải là chữ và số khỏi chuỗi
  • Xóa con khỏi chuỗi trong Python


Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin.Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do not spam and you can opt out any time.

  • Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt.Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee.Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.

    Xem tất cả các bài viết

Bài Viết Liên Quan

Chủ Đề