通配符PHP文本搜索

通配符PHP文本搜索,php,search,text,Php,Search,Text,我有一个文本字符串,它已被修改为web安全URL,即非字母数字的被转换为“\ux” 我想做的是在转换之前搜索原始名称,这意味着我需要某种通配符搜索,即 我拥有的 test__mytest 带有通配符 test??mytest 我将通过通配符搜索找到的字符串 test: mytest 有人能告诉我如何在PHP中实现这一点吗? 谢谢可能已经找到了解决方案 如果我让它工作,我会更新 编辑:这是我的解决方案 $searchstring = "/".str_replace("_","(.?)", e

我有一个文本字符串,它已被修改为web安全URL,即非字母数字的被转换为“\ux”

我想做的是在转换之前搜索原始名称,这意味着我需要某种通配符搜索,即

我拥有的

test__mytest
带有通配符

test??mytest
我将通过通配符搜索找到的字符串

test: mytest
有人能告诉我如何在PHP中实现这一点吗?
谢谢

可能已经找到了解决方案 如果我让它工作,我会更新

编辑:这是我的解决方案

$searchstring = "/".str_replace("_","(.?)", escape_string_for_regex($match))."/";
这将用搜索该位置的单个字符来替换所有u。 然后,我使用下面的行对测试字符串测试$searchstring

if (preg_match($searchstring, $matchtitle))

另一种方法是对特殊字符进行编码,而不是将其转换为下划线。这样就不需要通配符,只需搜索编码的值

例如,测试%3A%20页

这还可以防止在尝试将以下两个页面转换为页面时遇到的问题:

测试:第页
测试!页面


它们都会变成测试页面,空间/时间连续体将处于危险之中。可能不太可能,但仍然不受欢迎。

不幸的是,我无法控制编码,所以我不得不使用wilcards。感谢您,但是正则表达式的escape字符串应该是
preg\u quote($match,“/”)
。(除非您在自己的函数中使用它)。