我想知道是否有某种方法可以在PHP中进行模糊字符串匹配.寻找一个长字符串中的单词,找到一个潜在的匹配,即使它拼写错误; 如果由于OCR错误而被一个字符关闭的东西会找到它.
我在想一个正则表达式生成器可能能够做到这一点.因此,如果输入"疯狂",它将生成此正则表达式:
.*((crazy)|(.+razy)|(c.+azy)|cr.+zy)|(cra.+y)|(craz.+)).*
Run Code Online (Sandbox Code Playgroud)
然后它将返回该单词的所有匹配或该单词的变体.
如何构建生成器: 我可能会将搜索字符串/单词拆分为一个字符数组,并构建正则表达式,将新创建的数组替换为键值(字符串中字母的位置). +".
这是进行模糊文本搜索的好方法还是有更好的方法?怎么样的字符串比较,根据它的接近程度给我一个分数?我试图看看一些转换不良的OCR文本是否包含一个单词.
我想在body标签的开头正下方放置一个iframe.这有一些问题,因为body标签可以有各种属性和奇怪的空白.我猜这将需要正则表达式正确执行.
编辑:这个解决方案必须与PHP 4和性能是我的关注.这是为了这个http://drupal.org/node/586210#comment-2567398
<?php
/* PHP devs, test & tell me I'm crazy. */
$x[] = '1';
if (empty($x[0]['x'])) {
echo 'No PHP bug.';
}
else {
echo 'PHP bug exists.';
}
?>
Run Code Online (Sandbox Code Playgroud)
我总是得到"PHP bug存在."
<?php
/* PHP devs, test & tell me I'm crazy. */
$x[] = 1;
if (empty($x[0]['x'])) {
echo 'No PHP bug.';
}
else {
echo 'PHP bug exists.';
}
?>
Run Code Online (Sandbox Code Playgroud)
输出"没有PHP错误."
<?php
/* PHP devs, test & tell me I'm crazy. */
$x[] = '1';
if (!isset($x[0]['x'])) { …Run Code Online (Sandbox Code Playgroud)