Если вы работаете со строками (не юникод объектов), вы можете очистить он с переводом и проверить с isalnum()
, что лучше, чем бросать исключение:
import string
def isEnglish(s):
return s.translate(None, string.punctuation).isalnum()
print isEnglish('slabiky, ale liší se podle významu')
print isEnglish('English')
print isEnglish('ގެ ފުރަތަމަ ދެ އަކުރު ކަ')
print isEnglish('how about this one : 通 asfަ')
print isEnglish('?fd4))45s&')
print isEnglish('Текст на русском')
> False
> True
> False
> False
> True
> False
Также вы можете фильтровать не-ASCII символы из строки с помощью этой функции:
ascii = set(string.printable)
def remove_non_ascii(s):
return filter(lambda x: x in ascii, s)
remove_non_ascii('slabiky, ale liší se podle významu')
> slabiky, ale li se podle vznamu
возможно использование диапазона ascii с ascii os только английские символы в диапазоне 0-255, я считаю – jgr208
Можете ли вы рассказать мне, как это сделать в Python? – TJ1
@ TJ1 Какую версию Python вы используете? – thefourtheye