そういうときには正規表現による抽出や置換が簡単です。
ダウンロード
筆者は文字コード、改行コード変換、正規表現による置換にとても重宝しています。
フォルダ全対象になってくると、TextWranglerを利用した一括置換をしてるんですけどね。
利用例:dtタグデータをXML変換
<dt>2015/01/22</dt>
<dd><a href="◯◯">タイトル</a></dd>のHTMLデータを下記のXMLデータに変換したい
<item>
<date>2015/01/22</date>
<title>タイトル</title>
<url>◯◯</url>
</item>
※<date>, <title>, <url>の前は、タブを1ついれることとする
改行コードを「LF」に変換しておく
CotEditorの上部メニューで可能です。
改行コードは、LF, LF+CR, CRの3種類あり、LF=¥n, CR=¥r で表記します。
WindowsではLF+CRが利用されており、LFにするとWindowsのメモ帳で改行されずに表示されてしまう可能性はあります。あとで変換もできますので置換を簡略化するためにもLFに統一していると過程します。
改行コードは、LF, LF+CR, CRの3種類あり、LF=¥n, CR=¥r で表記します。
WindowsではLF+CRが利用されており、LFにするとWindowsのメモ帳で改行されずに表示されてしまう可能性はあります。あとで変換もできますので置換を簡略化するためにもLFに統一していると過程します。
1. dt→date、dd→title
まず最初に思いつくのが、- <dt> → <date>, </dt> → </date>
- <dd> → <title>, </dd> → </title>
まぁこれは普通の置換で出来ます。
結果として
<date>2015/01/22</date>
<title><a href="◯◯">タイトル</a></title>
2. <date>の前に<item>を置き、<date>の前のタブを置く
※置換時に「正規表現」のオプションにチェックしてください。
(¥nの改行コードを扱うため)
<date> → <item>¥n¥t<date>
とすればよい。¥n(バックスペース+n)は、改行コード
詳しくは下記に詳細なブログがいくつかあるので参考にしてみてください
これで、
<item>
<date>2015/01/22</date>
<title><a href="◯◯">タイトル</a></title>
※先頭は1つタブが入っている
に置換されます。
3. <title>の前のタブを置く
<title> → ¥t<title>
で置換する
<item>
<date>2015/01/22</date>
<title><a href="◯◯">タイトル</a></title>
<date>2015/01/22</date>
<title><a href="◯◯">タイトル</a></title>
となるはずです。
4. </title>の次の行に</item>を置く
※置換時に「正規表現」のオプションにチェックしてください。
</title> → </title>¥n</item>
で置換する。
<item>
<date>2015/01/22</date>
<title><a href="◯◯">タイトル</a></title>
<date>2015/01/22</date>
<title><a href="◯◯">タイトル</a></title>
</item>
となります。さて次が正規表現による抽出になります。
5. ◯◯を抽出し、<url>◯◯</url>を<title>の次の項目に追加する
※置換時に「正規表現」のオプションにチェックしてください。
<title><a href="(.*)">(.*)</a></title> → <title>¥2</title>¥n¥t<url>¥1</url>
として置換してみてください。
このとき一括検索することで、どのように抽出されているか分かります。
関連情報
- 【業務効率が変わる!】こんな時に役に立つ「正規表現」の使い所(WebNAUT)
正規表現の具体例とCotEditorとAdobe Dreamweaverでの使い方が紹介されてます。 - 最強の正規表現の覚え方とは「CotEditor」かもしれない(わようふうどっとこむ)
2015年2月16日 @kimipooh
0 件のコメント:
コメントを投稿