Php 构建一个算法来查找单词中的特殊字符并替换它们
我将首先说,我对输入没有影响,纠正它的建议也帮不了我。 我在问如何修复输出 我有德语的描述。问题是其中一些在这个过程中被破坏了。具有7个德语特殊字母之一的单词可能具有以下损坏字符: ('%�%')Php 构建一个算法来查找单词中的特殊字符并替换它们,php,regex,algorithm,Php,Regex,Algorithm,我将首先说,我对输入没有影响,纠正它的建议也帮不了我。 我在问如何修复输出 我有德语的描述。问题是其中一些在这个过程中被破坏了。具有7个德语特殊字母之一的单词可能具有以下损坏字符: ('%�%') (“%?%”) (“%Ø%”) (“%$%”) ('%3%') (“%Ã%”) (“%)%” 困难还在于,一个字母可以“翻译”成一个损坏的字符,甚至是三个损坏的字符。因此,“für”一词可以被损坏成“fér”或“f??r”或“f”�我没有任何特定的模式,我可以在正则表达式中使用 我需要建立一些算法:
(“%?%”)
(“%Ø%”)
(“%$%”)
('%3%')
(“%Ã%”)
(“%)%” 困难还在于,一个字母可以“翻译”成一个损坏的字符,甚至是三个损坏的字符。因此,“für”一词可以被损坏成“fér”或“f??r”或“f”�我没有任何特定的模式,我可以在正则表达式中使用 我需要建立一些算法:
对不起,有任何打字错误,希望能有所帮助 我希望你是在开玩笑……正确的解决方法是对文档/输入进行正确编码。试试UTF-8。这不是我的文档,我对输入没有影响。我在问如何更正输出请删除“已经有答案”,因为答案是关于编码的,不幸的是我无法更改输入。使用PHP中的
utf8.*
函数或iconv
是否足够?您的算法。如果损坏的字符数与正确的字符数相同,将非常有用。它将如何与“f?r”和“for?”(第二个是正确的,在单词的末尾有一个“?”)。我担心的第二个问题是运行时间。对于每个损坏的单词,我需要在整个词典中搜索所有特殊德语字符的组合…对于第一个问题-不,它不要求损坏字符的数量等于特殊德语字符的数量。对于“for?”-在helper函数中,我应该添加一个选项,如果特殊字符位于字符串末尾,则不修改字符串,因此它将检查当我们在特殊字符中替换损坏的字符时会发生什么,如果我们只是擦除它,则会发生什么,只要这是单词中的最后一个字符。对于第二个问题,运行时并没有那么糟糕,因为您只需要查看具有公共起始子字符串的某些单词。这仍然是一个问题,但比检查整个字典要好得多。您的算法是如何实现的。解决了原来的单词中有3个字母,而损坏的单词中我可以有5-6个字母的问题?