构建一个算法来查找单词中的特殊字符并替换它们

时间:2014-05-27 11:30:52

标签: php regex algorithm

我将从saing开始,我对输入没有任何影响,并且纠正它的建议无法帮助我。 我在问如何修复输出。

我有德语描述。问题是其中一些在此过程中被破坏了。有7个德国特殊字母之一的单词,可以有腐败的字符,如: ( '%%')
( '%¿%')
( '%Ø%')
( '%¶%')
( '%A%')
( '%A%')
( '%©%')

困难也是因为一个字母可以“翻译”到一个已损坏的字符或甚至3个已损坏的字符。因此,“für”这个词可以被破坏为“f?r”或“f ?? r”或“f r”,而且我没有任何特定的模式可以在正则表达式中使用。

我需要构建一些算法:

  1. 查找给定描述中的损坏。
  2. 查找已损坏字词的更正。
  3. 我有什么?

    1. 说明
    2. 德语词典,包含所有带有特殊字符的单词。
    3. 我想在PHP \ Queries中实现它,但它不是强制性的。任何想法怎么做?

1 个答案:

答案 0 :(得分:1)

一般算法(你必须用编程语言实现它)如下:

首先,让我们编写辅助函数: 1)给出一个单词,查找单词中每个损坏的字符。

2)从第一个开始,在损坏的字符和特殊的德语字符之间切换。

3)查看是否有任何单词(在“词典”中查找)以您刚刚切换的字符串的子字符串开头。如果没有,请返回2并进行其他切换。如果有的话,继续切换下一个被打破的字符。

4)当你无法切换任何更多损坏的字符时,检查这是否是一个单词。如果是,请将其添加到集合中(如果可能的话)。否则,回去做一个不同的开关。

然后,让我们转到主算法:

1)搜索损坏的字符(您说过的字符之一),这可以通过简单地逐个检查所有字符来完成。

2)当你找到一个损坏的char时 - 将char所属的整个单词发送给辅助函数。

3)选择辅助函数建议的选项,或者让辅助函数自行选择。

4)进行切换,如果是字符串则移动到最后。

5)返回1

对不起任何拼写错误,希望它有所帮助!