0

スペースを削除する必要がある URL にスペースが含まれている Wordpress からのデータベース ダンプがあります。これはもっと簡単な作業だと思いました。これは、不適切な href に一致する式です

(href\="http\:\/\/wfsu.org/blog-coastal-health\/\?page_id\=\d+\/\#)((\w+)\s(\w+))+\"

問題は、スペースをダッシュ​​に置き換えようとしています..

私は$1$3-$4"、2 語以上の単語では問題なく機能するが、3 語以上の単語では問題なく動作するものに置き換えています。誰にも解決策はありますか?

4

1 に答える 1

0

の使用を検討しpreg_replace_callback()ます。これにより、正規表現を使用して関心のある URL 文字列を取得し、それをコールバック関数に渡すことができ、文字列操作を使用してスペースをダッシュ​​に簡単に置き換えることができます。

コードは次のようになります。

$original_string; // your original string holding your text content
$pattern = '~href="http://wfsu.org/blog-coastal-health/.*"~i';
$cleaned_string = preg_replace_callback(
    $pattern,
    function ($matches) {
        return str_replace(' ', '-', $matches[0]);
    },
    $original_string
);

これにより、正規表現自体の中で置換する必要があるパターン フラグメントの数を決定しようとする必要がなくなります。href代わりに、プロパティ値全体をキャプチャして、単純str_replace()に実行します。

于 2013-05-02T20:53:50.527 に答える