0

我有一段用 perl 编写的程序:

$string = '[jkl][mno][ghi]';
$search = 'John';

if ($search =~ /$string/i) { 
  do....

我如何将其翻译成 php ?

我尝试使用 preg_match 但显然它具有不同的语法。基本上,上面的 if 语句将搜索 [] 括号之间的任何字母是否匹配 $search ..

如何在 php 中做到这一点,同时保持相同的 $string / $search 值?

更新 - php代码

<?php 
$string = "dan" ; 
$search = "[def][abc][mno"; 
if (preg_match("/".$search."/i",$string)) {
  echo "found it"; 
}
?>
4

2 回答 2

1

你应该先尝试/阅读

$string = '[jkl][mno][ghi]';
$search = 'John';

if (preg_match('/' . $string . '/i', $search)) {
    do....
于 2013-08-22T00:27:28.280 回答
1

如果你使用 .regexp 语法应该是一样的preg_match。不同之处在于您指定选项的方式。可以是这样的:

$string = '[jkl][mno][ghi]';
$search = 'John';

if (preg_match("/$string/i", $search)) { 
  do....

更新

在您的 PHP 代码中,您似乎缺少]$search = "[def][abc][mno";. 应该看起来像:

$string = "dan" ; 
$search = "[def][abc][mno]"; 
if (preg_match("/".$search."/i",$string)) {
  echo "found it"; 
}
于 2013-08-22T00:26:45.460 回答