ベタ打ちのURLリンクを正規表現でMarkdown形式に変換する

この記事は鷹野雅弘によって執筆されました。
公開日:2017年11月13日、更新日:2017年11月13日

次のようなテキストファイルをHTMLにする場面があります。    

・オーディオ買取屋
 http://audio.kaitori8.com/
  まずは次のようにMarkdown形式にしてから、

- [オーディオ買取屋](http://audio.kaitori8.com/)

つまり、「テキスト→Markdown→HTML」のようにしているのですが、この「テキスト→Markdown」をチカラワザでなく、正規表現でやろうと取り組みました。

なお、Jedit Ωにて検証。こうするといいですよ、ではなく、ダマシダマシこうやってみた、という記事です。

1行目を選択する

まずは1行目。

^(.+)[\1]のように検索置換してみます。

  • ^は文頭
  • (.+)は任意の文字列。()で囲むことでグループとして扱い、\1にて置換対象とする

その結果、[・オーディオ買取屋]となってしまいます。

「・」が不要です。さらに、このままでは「 http://audio.kaitori8.com/」も検索対象になってしまいます。

「・」を検索対象からはずす

^・(.+)[\1]のように検索置換すると、無事に[オーディオ買取屋]となりました。

「・」が不要なため、^・(.+)のように()から追い出しました。

1行目と2行目をまたがって検索対象にする

^・(.+)\nとすると、改行コードまでは検索対象にできるのですが、2行目までを連続して検索対象にできません。

調べたところ、[\s\S]で可能そうなので、^・(.+)[\s\S](.+)[\1](\2)と実行すると、残念ながら、[オーディオ買取屋]( http://audio.kaitori8.com/)のようにスペースが残ってしまいます。

全角スペースを削除する

^・(.+)[\s\S]\s(.+)のように\sを入れてみたら、htmlの前のスペースは消え、[オーディオ買取屋](http://audio.kaitori8.com/)のようにできました。

または、^・(.+)\n[\s\S](.+)のように[\s\S]の前に\nを入れることでも解消。

[\s\S]は「改行を含む任意の1文字」という意味ですので、前者だと改行コードと物理的な改行(次の全角スペースは非対象)。後者だと、まず、\nで改行コードとマッチングし、[\s\S]で物理的な改行と2行目のスペースということでしょうか。

例外的な体裁への対応

前提は、次のようなテキストファイルがあることでした。    

・オーディオ買取屋
 http://audio.kaitori8.com/
  次のように「・」やスペースが入っていないときにも対応できるように考えてみます。

 

オーディオ買取屋
http://audio.kaitori8.com/

  • ・?のように?を付けることで、「・」がない場合にも対応できますが、これによって対象が広くなりすぎてしまいます。
  • 2行目の全角スペースも\s?とすることで、入っていない場合にも対応。
  • そこで「2行目にhttpが入る」ことを条件に加えるべく、(.+)(.*http.*)としました。
  • .*http.*は「http」を含む文字列を対象にします。

ここまでのまとめ

  • 検索:^・?(.+)[\s\S]\s?(.*http.*)
  • 置換:- [\1](\2)

続く

追って掲載。

2005年11月にスタートしたDTP Transitは満12歳になりました。

Twitter

本サイトの記事以外に、小ネタなどをツイートしています。また、マンスリーでまとめています。

『10倍ラクするIllustrator仕事術』改訂版

『10倍ラクするIllustrator仕事術』(増強改訂版)は、2011年発売の『10倍ラクするIllustrator仕事術』の改訂版。

2014年に技術評論社から発売、現在6刷。2011年版と合わせて38,000部のロングセラーとなっています。

詳しくはサポートサイトにて。

画像:『10倍ラクするIllustrator仕事術』改訂版

Illustrator CC 2018(2017年10月リリース)への対応版準備中です。全ページ書き換えますので、2017年版を待たずに、2014年版を(も)ご購入ください。

お知らせメールへの登録はこちら

セミナー開催情報

セミナー開催情報をこちらにまとめています。

DTP Transitと無関係のものも掲載しています。お問い合わせは、それぞれのイベントの主催者までお願いします。

5つの「く」

画像:『10倍ラクするIllustrator仕事術』改訂版

DTP Transitのコアとなっている制作へ考え方「ムラなく、モレなく、直しに強く、手数を少なく、美しく」を5つの「く」としてまとめてみました。

オススメ外部リンク

Adobe Creative Stationで「知ってるようで、知らずに損してるAcrobatとPDFのアレコレ」と題して連載しています。

Adobe Creative Stationで「ベテランほど知らずに損してるIllustratorの新常識」と題して連載しました。

Adobe Creative Stationで「ベテランほど知らずに損してるPhotoshopの新常識」と題して連載しました。

オススメのスライド

お問い合わせ

リンク

このページの上部に戻る