2016-09-25 7 views
0
<a param1="false" class="param2" id="id#12" href="#1">toto</a> 
私はHTMLテキスト内の特定のparamsを削除するにはPHP にpreg_replaceをした

PHPでpreg_replaceを使用して置換スペースを削除しますか?

<a href="#1">toto</a>

I:

$re = "/(param1=\"false\"|class=\"param2\"|id=\"id#([^\"]+)\")/"; 

$text = preg_replace($re, " ", $data->text->value); 

が、私はこのHTMLリンクを取得との間にスペースを1つだけ残したいとします。 href、これは正規表現で直接行うことは可能ですか?

答えて

1
を達成することができる唯一の方法は、あなたがあなたのコンポーネントのそれぞれに \s+を渡す必要があり、次のように

$re = '/(param1="false"\s+|class="param2"\s+|id="id#([^\"]+)"\s+)/'; 

を定期的な定期的に変更し

です。

そして

$text = preg_replace($re, "", $data->text->value); 

は、それはそれだ、スペースでそれらを交換しないでください、次のようにあなたのpreg_replace()機能を変更します。

0

"preg_match"ですべてのバックプレッションを使用する必要があるとします。これは、あなたが

$re = "/<a.*(param1=\"false\"|class=\"param2\"|id=\"id#([^\"]+)\")/"; 
$text = preg_replace($re, "<a", $data->text->value); 
0

あなたはこれを試みることができる:

$re = "/(param1=\"false\"|class=\"param2\"|id=\"id\#([^\"]+)\")([\ ]{1,}?)/"; 
$text = preg_replace($re, "", $data->text->value); 

Regex101

関連する問題