我尝试使用模式 "(c,c,c)" 解析Python3和re模块字符串,其中 c 是要在 (a,b,ë,ɪ̈ ) 中选择的一个字符。我写了类似的东西:
src="(a,b,ɪ̈)"
pattern = "[abëɪ̈]"
for r in re.finditer( '\({0},{0},{0}\)'.format(pattern), src ):
print( r.group() )
但是正则表达式不适用于 ɪ̈;Python 将 ɪ̈ 分析为由两个字符 (ɪ + diairesis) 组成,id est ɪ 加上一个变音符号:正则表达式不知道如何阅读“(a,b,ɪ̈)”。我对ë没有同样的问题;Python 将 ë 分析为一个字符,我的正则表达式能够读取“(a,b,ë)”,给出预期的答案。由于 unicodedata.normalize('NFD', ...) 应用于src和pattern ,我尝试使用规范化方法,但未成功。
我该如何解决这个问题?很高兴能帮助我!
PS:感谢pythonm ,我修正了一些错别字。