次のような事前アンケートを
取りました
「テキスト処理をしている中で、手作業でやるのが面倒な事例を
教えてください。例題としてとりあげるので、
メールかSkypeで受け付けます。」
まずは、そのアンケートについて一通ずつ紹介します
.(ピリオド)任意の一文字(改行以外)を表す
これ
*(アスタリスク)直前の文字を0回以上繰り返す
これ
+
.*(ピリオド&アスタリスク)任意の一文字を0回以上繰り返す
これがワイルドカード文字の*(アスタリスク)に相当します
ワイルドカードの『*』=(イコール)
正規表現の『.*』
¥n(改行)¥t(タブ)^(行頭)$(行末)
(A|B)(AまたはB)
行頭に「> 」の引用符を挿入したい
HTMLメールに対してテキストメールで返信する時など
引用符(> )が欲しくなる時があります
行頭に引用符を挿入したいそんな時に使えます
検索する文字列『^』
置換する文字列『> 』
半角空白
秀丸エディタにある正規表現機能の使い方を
ご紹介します
メニューバーの「検索」→「置換」をクリックします
正規表現のチェックボックスをオンにします
「初めてだから怖い・・・」という方は痴漢の前に確認しておきましょう
検索する文字列『^』
置換する文字列『> 』
半角空白
行頭(^)を引用符(> )に置換したということ
Excelなどのファイルから文字列をコピーした時
行末に不要な空白があることがあります
行末の不要な空白を除去したいそんな時に使えます
検索する文字列『 $』
置換する文字列『』
半角空白
行末($)直前の空白を「何もなし」に置換したということ
HTMLでは改行を<br />と表します
原稿の行末に<br />を挿入したいそんな時に使えます
検索する文字列『$』
置換する文字列『<br />』
行末($)を<br />に置換したということ
バラバラになっている表記ゆれを統一したい
複数人がライティング作業をする時など表記ルールを決めてない限り表記ゆれが絶対おこります
表記ゆれを統一したいそんな時に使えます
検索する文字列『(ウェブ|ウエブ)』
置換する文字列『Web』
ウェブまたは、ウエブをWebに統一したということ
行頭の不要な空白やタブを
除去したい
人からもらったHTMLファイルなど「インデントのタイミングが気持ち悪い」「タブと空白入り交じってやがる!」など、イラっとすることがありますね
すべてのインデントをリセットしたいそんな時に使えます
検索する文字列『^( | |¥t)*』
置換する文字列『』
行頭(^)の半角空白、または全角空白、またはタブ(¥t)が
いくつ出てきたとしても(*)「何もなし」に置換したということ
延々続く文字列を30文字で折り返したい
メールを送る時なんかに30字で改行すると見やすくなりますね
書き終わってから30字に強制改行したいそんな時に使えます
検索する文字列『(..............................)』
置換する文字列『¥1¥n』ピリオド30個
解説の前に、今使った
新しい概念の説明です
検索する文字列『(..............................)』
置換する文字列『¥1¥n』
検索する文字列『(..............................)』
この検索する文字列のように、カッコでグループ化した文字は
置換する文字列『¥1¥n』
後から、¥1という表記で呼び出すことができます
置換する文字列『¥1¥n』
この置換する文字列で言う¥1は『..............................』と同じ意味になります
つまり、置換する文字列『¥1¥n』
は『..............................¥n』
とあらわしていることになります
検索する文字列『(...............)(...............)』
カッコのグループが2つあれば
ピリオド15個
置換する文字列『¥1¥2¥n』
後から、¥1と¥2という表記で別々に呼び出すことができます
検索する文字列『(..............................)』
置換する文字列『¥1¥n』
任意の文字(.)が30個続いたら、改行(¥n)を挟むということ
検索する文字列『(.{30})』
置換する文字列『¥1¥n』
<meta>や<img>を<meta />や<img />に
変換したい
HTMLからXHTMLに移行する時空要素の末尾に「 /」が必要です
意外に多くてめんどくさい
空要素の末尾すべてに「 /」を挿入したいそんな時に使えます
検索する文字列『(<(meta|link|br|img|hr|
input).*?)>』
置換する文字列『¥1 />』
よく使う空要素のみ抜粋
解説の前に、今使った
新しい概念の説明です
説明のためにシンプルな記述に変更します
検索する文字列『(<img.*?)>』
置換する文字列『¥1 />』
検索する文字列『(<img.*?)>』
?が今回のポイントです
検索する文字列『(<img.*?)>』
この?がないとどうなるかというと
<p><img src=”example.jpg” alt=”いぐざんぽー”></p>
外側に別の要素があると赤字の範囲がマッチ対象になります
<p><img src=”example.jpg” alt=”いぐざんぽー”></p>
本当はここまでで止めてほしい
検索する文字列『(<img.*?)>』
?を使うと最短距離でマッチしてくれます
『(<img.*)>』
?がなければ最長距離の「>」まで<p><img src=”example.jpg”
alt=”いぐざんぽー”></p>
『(<img.*?)>』
?があれば最短距離の「>」まで<p><img src=”example.jpg”
alt=”いぐざんぽー”></p>
というようにマッチ対象が変わります
検索する文字列『(<(meta|link|br|img|hr|
input).*?)>』
置換する文字列『¥1 />』
よく使う空要素のみ抜粋
「<」があって、metaまたは、linkまたは・・・があって
任意の文字がいくつかあって(.*)最短距離の「>」までを
<なんとか />にするということ
相対パスより絶対パスの方がSEOに効果があるという噂がありますね
相対パスを絶対パスに変更したいそんな時に使えます
検索する文字列『(<a href=")』
置換する文字列『¥1http://www.example.com/』
にわか正規表現は危険なので慣れないうちは
用法・容量を守って正しくお使いください