正则表达式拼写错误

标签 regex

我从数据库列表中创建了一个正则表达式,以匹配游戏中建筑物类型的名称。问题是错别字,有时候在游戏中为他们的团队写指令的人会拼错建筑物的名称,而正则表达式显然不会选择它(即拼写“大学”和“大学”)。

关于使正则表达式匹配1个或2个字母的拼写有任何建议吗?

regex是动态生成的,并在能够处理更多负载的本地计算机上运行,​​因此,我不得不采用算法来创建每个单词的版本,每个单词的字母先丢失,然后再添加字母。

我正在使用PHP,但希望该问题的任何解决方案都不是特定于PHP的。

最佳答案

请允许我向您介绍Levenshtein Distance,它是字符串之间的差异的度量,它是将一个字符串转换为另一个字符串所需的转换次数。

它也是built into PHP

因此,我将输入文件除以非单词字符,然后测量每个单词与建筑物目标列表之间的距离。如果距离低于某个阈值,则假定它拼写错误。

我认为,与为每种特殊情况尝试制作正则表达式相比,用这种方式进行匹配的运气要好得多。

关于正则表达式拼写错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/392234/

相关文章:

Python - 将 url 拆分为其组件

javascript - 将文本包裹在字符串后的 span 中 - 使用 jquery/javascript

python - 正则表达式 - 选择字符串直到 '/'

mysql - 在 MySQL 中的字符串末尾选择双字母与单字母

regex - 我想匹配任何不包括 '#' 但包括 '\#' 的内容

regex - CMake 正则表达式匹配

javascript - 从字符串格式解析正则表达式

javascript - 使用 jquery 删除数组列表前的引号

java - 如何使用 Java 正则表达式防止字符重复

正则表达式 - 在不包含单词的两个单词之间获取字符串