检查字符串是否匹配特定模式

时间:2019-12-30 17:26:30

标签: php regex string

我正在尝试建立一种逻辑,该逻辑将检查字符串是否匹配模式。匹配的模式是这样构建的:

+ = and
/ = or

模式示例:"a+(b/c)"-表示字符串应包含“ a”和“ b”或“ c”。

在这种情况下,以下字符串应导致:

"ac" = true
"ab" = true
"abc" = true
"decfga" = true

"ad" = false
"bc" = false
"cb" = false

您将如何在PHP中做到这一点?有什么聪明的方法可以使用preg_match来完成此任务吗?

1 个答案:

答案 0 :(得分:0)

感谢你们,我设法通过传递的模式语法构建了一个正则表达式。

这是我最后得到的代码示例

$pattern = "e+(d/s)";
$string = "es";

$a = str_replace(array("(",")","/"),array("","",""),$pattern);
$b = explode("+",$a);
$ext = "";
for ($i=0; $i<@count($b); $i++) {
    @$c = $b[$i];
    if (strlen($c)>1) $c = "[".$c."]";
    @$ext .= "(?=.*".$c.")";
}
$ext = "/^".$ext.".+$/m";
$test = preg_match($ext,$string);