我正在比较三种词汇资源。我使用其中一个条目来创建查询 - 请参阅第一列 - 并查看其他两个词典是否返回正确的答案。所有错误的答案都写入文本文件。这是3000行中的一个样本:
réincarcérer<IND><FUT><REL><SG><1> réincarcèrerais réincarcérerais réincarcérerais
réinsérer<IND><FUT><ABS><PL><1> réinsèrerons réinsérerons réinsérerons
macérer<IND><FUT><ABS><PL><3> macèreront macéreront macéreront
répéter<IND><FUT><ABS><PL><1> répèterons répéterons répéterons
第一列是查询,第二列是引用。第三列和第四列是词典返回的结果。这些值以制表符分隔。
我正在尝试找出仅与其变音符号不同的答案。也就是说,répèterons répéterons
应该匹配,因为两者之间的唯一区别是第二部分在e
上具有强调重音而不是严重重音。
我想匹配整条线。我要感谢一个正则表达式,它还可以找出因其发布而不同的答案 - 以下两行应该匹配,因为martellerait
有两个l
,而martèlerait
只有一个。{ / p>
modeler<IND><FUT><ABS><SG><2> modelleras modèleras modèleras
marteler<IND><FUT><REL><SG><3> martellerait martèlerait martèlerait
最后两个值始终相同。您可以专注于值#2和3。
答案 0 :(得分:1)
第一部分可以通过对ASCII进行有损转换然后进行直接字符串比较来实现。注意,转换为ASCII有效地消除了变音符号。
要使用正则表达式模式,第二部分是不可能的(据我所知)。您需要对Levenshtein距离等事项进行一些研究。
编辑:
此正则表达式将匹配重复的辅音。它可能对您的发送问题有所帮助。
([b-df-hj-np-tv-xz])\\1+
这意味着:
([b-df-hj-np-tv-xz]) # Match only consonants
\\1+ # Match one or times again what was captured in the first capture group