我有以下字符串变量
string1 = "cafe ceramique"
string2 = "Café Céramique"
我想要一个匹配string1到string2的正则表达式。
以更通用的方式,如何将任何字符串ascii字符串与具有常规表达式的非ascii字符串匹配?
答案 0 :(得分:2)
import unicodedata
string1 == unicodedata.normalize('NFKD', string2).encode('ASCII', 'ignore').decode('ascii')
在你的例子中,单词的第一个字母是不同的。你想要不区分大小写吗?
答案 1 :(得分:0)
您可以使用字符类和不区分大小写的修饰符:
rx = r'caf[eé]\ c[eé]ramique'
在Python
中,完整的示例如下:
import re
string = """cafe ceramique
Café Céramique"""
rx = r'caf[eé]\ c[eé]ramique'
matches = re.findall(rx,string,re.IGNORECASE)
请参阅a demo on regex101.com
一般来说,e
是一个完全不同于é
,è
或ê
的其他字符,考虑the ASCII representation。