0

正規表現の一致を実行して、データベース(Wordpress)にあるmp3ファイルへのhotfile.comリンクを置き換えようとしています。

以前は自分のサイトでmp3ファイルをストリーミングするためにhotfileを使用していましたが、今はCDNに切り替えましたが、誰かがこれを手伝ってくれるかもしれません。

置換:http // hotfile.com / dl / 157490069 / c8732d4 / mp3_file_name.mp3置換:http // p.music.cdndomain.com / vod / music.folder / 2010 / mp3_file_name.mp3

http // hotfile.com / dl /%/%/のような単純な検索と置換を試みましたが、機能しません。

hotfile.comにすべてのファイルに対して異なるフォルダーがない場合は、検索と置換を実行する方が簡単でした。以下に問題の2つの例を示します。

http // hotfile.com / dl / 155490069 / c7932d4 / http // hotfile.com / dl / 165490070 / c8745e7 /

置き換えるファイルが500以上あります。

ありがとう

4

3 に答える 3

0

http://regex101.com/r/lK9wH4のような単純なものが機能するはずです: /^.+\/(.+)$/そして、に置き換え<your_new_url>\1ます。

幸運を。

于 2012-08-30T08:01:24.320 に答える
0

notepad ++を使用して、すべてのファイルを検索および置換できます

この特定のサンプルの場合:

正規表現モードでの検索と置換:

検索"http// hotfile.com /(。)/(。.mp3 "

「http//p.music.cdndomain.com/vod/music.folder/2010/\2」を置き換えます

引用符を削除しますが、最後にスペースを残します

更新:メモ帳++のscreencapture

ここに画像の説明を入力してください

于 2012-08-30T08:21:55.067 に答える
0

WordPressデータベースにmysqlを使用している必要があるため、次のように正規表現を使用してこの置換を行うことができます。

正規表現パターン: #http://(www.)?hotfile.com/\w+/\w+/\w+/#

交換パターン:http//p.music.cdndomain.com/vod/music.folder/2010/

別のより簡単な解決策は、mysqlの単純な文字列関数を使用してmp3ファイル名を抽出することです。

  1. SUBSTRINGまたはSUBSTRING_INDEXを使用して、mp3ファイルのファイル名を抽出します。つまり、ホットファイルのURLで「/」が最後に出現した後の文字列を検索します。

  2. CONCATを使用して、取得したファイル名を新しいURLプレフィックスに追加し、データベースで更新します。

次に例を示します。データベースに合わせて適切に変更できます。

mysql> select * from test_songs;
+---------------------------------------------------------------+
| song_url                                                      |
+---------------------------------------------------------------+
| http://hotfile.com/dl/157490069/c8732d4/mp3_file_name.mp3     |
| http://www.hotfile.com/dl/123412312/dd732d4/mp3_song_name.mp3 |
+---------------------------------------------------------------+

部分文字列を取る:

mysql> select SUBSTRING_INDEX(song_url,"/",-1) from test_songs;
+----------------------------------+
| SUBSTRING_INDEX(song_url,"/",-1) |
+----------------------------------+
| mp3_file_name.mp3                |
| mp3_song_name.mp3                |
+----------------------------------+
2 rows in set (0.03 sec)

最終更新クエリの作成:

mysql> Update test_songs set song_url =
CONCAT("http//p.music.cdndomain.com/vod/music.folder/2010/",
        SUBSTRING_INDEX(song_url,"/",-1)) ;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

結果の確認:

mysql> select * from test_songs;
+---------------------------------------------------------------------+
| song_url                                                            |
+---------------------------------------------------------------------+
| http//p.music.cdndomain.com/vod/music.folder/2010/mp3_file_name.mp3 |
| http//p.music.cdndomain.com/vod/music.folder/2010/mp3_song_name.mp3 |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

終わり !

于 2012-08-30T08:35:17.020 に答える