2020/05-5年半ぶり更新!検索・置換プラグインSearch Regexの使い方と正規表現

2019-04-03WordPress・プラグイン

2020/05-5年半ぶり更新!検索・置換プラグインSearch Regexの使い方と正規表現

指定した文字列を検索し、指定した文字列に置換してくれるプラグインです。

いろいろな場面で便利に使えます。

 

2020/5 追記
「Search Regex Ver.2.0」にアップデートを行うと、検索する画面が変わります。
更に、昇順・降順表示オプションがなくなっているみたいですが、久しぶりの更新で最新のWordPress対応となり、エラーメール問題は解消されています。

Search Regex

 

Search Regex

 

 

2019/8 追記
「Search Regex」を使うたびにエラーのメールが届くようになった対処についてWordPress Ver5.2.2以降で発生

以下のようなメールが届いた場合、ちょっとびっくりしますが

サイトで技術的な問題が発生しています

放置して問題ありません。

どうしても気になる場合は、プラグインのPHPファイルを編集する事で解決できます。

私が参考にしたサイトは以下ですので、メールがイヤだ~という方は参考にして下さい。

Search Regex使用時に「サイトで技術的な問題が発生しています」というエラーメールが届くときの解決方法(Naifix様)

 

 

インストール

プラグインの新規追加で検索してインストールし、有効にして下さい。

 プラグイン名は、以下にカーソルを載せ右に出る「Copy」を押すことでコピー出来ます。
Search Regex

5497_01

※単体ダウンロードページは こちら

 

各項目説明

有効化するとメニューの「ツール」の中に「Search Regex」が追加されますのでそれを選択します。

 

– 2020年5月追記 –

バージョンアップで画面が変わりました。

Search Regex

Souce  検索対象

Ver.2.0~

日本語対応になったようです。わかりやすい。

Search Regex

 

Ver.1.x の場合

デフォルトでは「Post contents」になっています。

5497_02

プルダウンで選択できる内容は以下の通りです。

Comment author – コメントの名前
Comment author email – コメントのメールアドレス
Comment author URL – コメントのURL
Comment content – コメントの内容
Post content – 記事の本文
Post excerpt – 記事の抜粋
Post meta value – 記事のカスタムフィールド
Post title – 記事のタイトル
Post URL – 記事のURL

 

検索件数と昇順or降順 指定

Ver.2.0~

件数指定は以下から。昇順・降順の選択がなくなっていました。

Search Regex

 

Ver.1.x の場合

5497_04

Limit to
No limit(件数制限なし)、10,25,50,100件から選択可能
Order By
Ascending 昇順
Descending 降順

あまりにも検索対象件数が多い場合など以外は、デフォルトで問題なし。

 

検索・置換文字列入力

Ver.2.0~

Search Regex

 

 

正規表現の場合は「Serch Flags」の項目から

Search Regex

 

Regular Expression」にチェック

Search Regex

 

 

Ver.1.x の場合

5497_03

Search pattern 検索文字列
Replace pattern 置換文字列
Regex  正規表現(後述)
Search 検索
Replace&Save 置換・保存

 

使い方

通常の文字列置換

  1. Search pattern 検索文字列を入力
  2. Replace pattern 置換文字列を入力
  3. Serch ボタンで検索結果を表示
  4. 問題なければ Replace & Save ボタン
 Serchボタンで検索結果を確認してから置換しましょう。

 

正規表現を使う

特定の決まった文字列ではなく、ある条件パターンにあう、いろいろな文字列で検索したい場合に使います。

 

たとえば、記事内の強調タグ<strong>を アンダーラインタグ<u>に変える場合で説明していきます。

 

 Search pattern
検索する文字を「|」で囲みます。
. 任意の1文字
* 直前のパターンの0回以上繰り返し(最長一致)

(.*) で文字列をマッチさせますが、このままだと、1行の中に

<strong>ABC</strong>は、CDEとFGの<strong>XYZ</strong>です

などと、複数回書かれていると、最初の< strong>(ABCの前)から最後の</strong >(XYZのあと)までを1つとして認識し、間の文字列もすべて変換対象となってしまいますので、「?」を付けます。

? 直前のパターンの0~1回繰り返し(最長一致)

 

(.*) 任意の1文字の0回以上の最長連続
(.*?) 任意の1文字の0回以上の最短連続
|<strong>(.*?)</strong>|

上記の記述では、最短マッチで<strong></strong>タグに挟まれた文字列を含む<strong>~</stromg>までのすべてが対象になります。

 

 Replace pattern

$1(変数) に 上記検索でマッチした文字列が入るので、以下のように記述。

<u>$1</u>
 Regex

チェックを入れます。

5497_07

Regex 正規表現
case-insensitive ー 大文字・小文字を区別しない
multi-line - 複数行モード
dot-all - DOTALLモード

その他必要に応じてチェックします。複数行にわたるアドレスや、コードなどを検索する場合などにチェックして利用できます。

 

 

例での検索結果

5497_06

 

その他、正規表現では数字や否定、半角、全角など様々な条件の指定が可能です。

詳細については、「正規表現」で検索するといろいろ出てきます。

 

関連記事