0

私はこのプログラミングをperlで書いています:

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

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

それを php に変換するにはどうすればよいですか?

preg_match を試してみましたが、明らかに構文が異なります。基本的に、上記の if ステートメントは、[] ブラケットの間にある文字のいずれかが $search .. と一致するかどうかを検索します。

同じ $string / $search 値を維持しながら、php でこれを行うにはどうすればよいですか?

更新 - php コード

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

2 に答える 2

1

を使用する場合、正規表現の構文は同じである必要があります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 に答える
1

最初に試して読むべきでした。

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

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