我正在测试的字符串可以与[\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