我正在測試的字符串可以與[\w-]+
匹配。我可以測試一個字符串是否符合Python中的這個要求,而不是有一個不允許的字符列表並對其進行測試?如何檢查字符串是否只包含字母數字字符和破折號?
回答
如果你想測試一個正則表達式的字符串,使用re庫
import re
valid = re.match('^[\w-]+$', str) is not None
Python有正則表達式,以及:
import re
if re.match('^[\w-]+$', s):
...
或者你可以創建一個列表的允許字符:
from string import ascii_letters
if all(c in ascii_letters+'-' for c in s):
...
re.match('^ [\ w - ] + $',s)返回相應的MatchObject實例。如果字符串與模式不匹配,則返回無。應該與無比較。 – Temak
@Enor爲什麼?任何匹配對象都是真實的,沒有是唯一可能的虛假價值。 –
要測試字符串包含只字母,數字和破折號,我會用
import re
found_s = re.findall('^[\w-]+$', s)
valid = bool(found_s) and found_s[0] == s
哎呀,從來沒有,所以不必要 – richard
沒有導入任何模塊只使用純Python,刪除任何沒有字母,數字,除了破折號。
string = '#Remove-*crap?-from-this-STRING-123$%'
filter_char = lambda char: char.isalnum() or char == '-'
filter(filter_char, string)
# This returns--> 'Remove-crap-from-this-STRING-123'
或者在一行:
''.join([c for c in string if c.isalnum() or c in ['-']])
這應該是被接受的答案,你不需要正則表達式或外部包來解決這個問題。 – Roganartu
- 1. 如何檢查字符串是否只包含英文字母?
- 2. Lua:如何檢查一個字符串是否只包含數字和字母?
- 3. 檢查一個字符串是否包含數字和字母
- 4. 檢查字符串是否僅包含英文字母,數字和符號
- 5. 如何檢查是否字符串包含數字符號
- 6. 檢查字符串是否包含數字和符號
- 7. 如何檢查unicode字符串被字母,空格和破折號只有
- 8. 檢查一個字符串是否只包含某些字母
- 9. PHP檢查字符串是否包含一些字母/數字
- 10. 檢查字符串是否包含字母數字
- 11. c# - 檢查字符串是否包含字符和數字
- 12. 檢查字符串中是否包含字符和數字
- 13. 如何檢查字符串是否包含特殊字母?
- 14. 如何檢查一個字符串是否包含字母或字母和撇號,但沒有數字?
- 15. 如何檢查是否字符串包含字符串數組字符串
- 16. PHP檢查字符串是否包含數字和檢查字符串長度
- 17. 如何檢查字符串是否包含字母表中的任何字母?
- 18. 如何在Javascript中檢查字符串包含字母字符
- 19. 檢查字符串是否包含字(不是子字符串!)
- 20. 字母和數字可以包含破折號和瑞典字符的詞
- 21. 檢查字符串是否只包含允許的字符
- 22. 檢查字符串是否只包含拉丁字符?
- 23. 檢查一個字符串是否只包含特殊字符
- 24. Javascript檢查字符串是否只包含某個字符
- 25. 檢查字符串是否只包含指定的字符
- 26. 檢查一個字符串是否只包含某些字符
- 27. SML檢查一個字符串是否只包含數字
- 28. F#檢查一個字符串是否只包含數字
- 29. 檢查字符串是否包含字符集中的字符
- 30. 如何檢查一個字符串是否只包含PHP中的字母?
沒有語言環境指示的字母數字字符僅'[A-ZA-Z0-9] +','不[\ W] +'匹配。 – greg