在 python 中寻找 unicode 范围的补充
Look for complement of unicode range in python
我有一组单词,我想找到那些包含非意大利语字符的单词。与其提供不属于意大利字母表的所有可能的 unicode 字母范围,我认为最好指定允许字母的范围,然后检查字符串是否包含不属于这些范围的任何字符。问题是,我不知道如何让 Python 的 re
模块查找这些字符,而且我找不到任何有用的东西。
这是一个例子:小写拉丁字母的范围是 u0061 - u007a
,所以如果我 运行 以下内容:
print(re.search("[\u0061-\u007a]", 'hello'))
我得到了输出:<re.Match object; span=(0, 1), match='h'>
,正如预期的那样。
现在让我们在输入字符串中添加一个超出范围的字符,并使其成为Àhello
。我想搜索提供范围之外的字符。我尝试在范围前添加“^”字符:
print(re.search("^[\u0061-\u007a]", 'Àhello'))
但我得到 None
作为输出。我想避免按字符扫描每个字符串。可能吗?
将^
符号放在方括号内:
print(re.search("[^\u0061-\u007a]", 'Àhello'))
我有一组单词,我想找到那些包含非意大利语字符的单词。与其提供不属于意大利字母表的所有可能的 unicode 字母范围,我认为最好指定允许字母的范围,然后检查字符串是否包含不属于这些范围的任何字符。问题是,我不知道如何让 Python 的 re
模块查找这些字符,而且我找不到任何有用的东西。
这是一个例子:小写拉丁字母的范围是 u0061 - u007a
,所以如果我 运行 以下内容:
print(re.search("[\u0061-\u007a]", 'hello'))
我得到了输出:<re.Match object; span=(0, 1), match='h'>
,正如预期的那样。
现在让我们在输入字符串中添加一个超出范围的字符,并使其成为Àhello
。我想搜索提供范围之外的字符。我尝试在范围前添加“^”字符:
print(re.search("^[\u0061-\u007a]", 'Àhello'))
但我得到 None
作为输出。我想避免按字符扫描每个字符串。可能吗?
将^
符号放在方括号内:
print(re.search("[^\u0061-\u007a]", 'Àhello'))