まつもと(Artman)のテキストエディタJeditで正規表現。
2016年02月11日
もう何年使っているでしょう?旧まつもと、現ArtmanのテキストエディタJedit。
こういうのは「慣れ」ですから、もっと高機能な・安定したものが出てきてもなかなか移行できないものです。Windowsなら秀丸エディタかな?有料というところも同じですね。Jedit、一部の巨大なデータを開こうとすると「だんまり」を決め込んだりして意外と不安定な面も見せるんですよね。
それはさておき。
こんな原稿をいただきました。
A賞:ぽち
B賞:モネ
C賞:パル
「○賞」のところを「太字にして欲しい」と。HTMLなら
<p><strong>A賞</strong>:ぽち</p>
と表記すれば良いと。
ただしこんな項目が数千あります。A賞・B賞もそんなに単純なものではなく、共通項は「:(全角コロン)」のみです。「賞」の文字すら共通していません。こんな時はWordPressに貼り付けて、目で見て必要箇所を選択、ツールバーの「B(ストロング)」ボタンを押しまくります・・・って、そんなことやってられるかー!
正規表現
正規表現とは「文字列の集合を一つの文字列で表現する方法の一つである。」とのこと。
PHP、perl、ruby、その他なんでもプログラム言語なら、これが無いと始まりません。
例:if (preg_match(“/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/”, $text)) {…….}
上記はPHPで「渡された文字列がe-mailアドレスの規則に則っているか調べる」正規表現です。あくまで「規則に則っているか調べる」だけで、存在するかとかは調べてくれません。・・・・分かりにくいwww
しかもこの正規表現、言語によって方言があり微妙に異なっています。Jeditの場合、Rubyに準拠した正規表現による検索エンジンを採用しています。
すると、上記の検索は簡単です!
検索文字列=「^.+:」
- ^は行頭を表します。
- .は任意の一文字を表します。
- +は直前の文字が1つ以上繰り返されることを表します。
すると、行頭から:が出現するまでを検索できることになります。
置換
検索/置換って、よく使いますよね?(意外とみんな手作業でやってたりすることが多いんだなwww)
今回の問題は、置換する文字列を指定できないことです!
^.+:
↓
<strong>????</strong>:
通常は「????」に、置き換えるべき文字列を入れなければなりません。しかし「.+」で指定した文字列は「何が入っているか分からない!」です。さて、困った。
「.+」で検索した文字列を変数に入れて、置換文字列としてその変数を呼び出してやれば良いということは分かるのですが、指定方法が分からない。Jeditは正規表現を使えると言っても、「検索ボックスの中で」ということだけですから、スクリプトを組むとかできないですものね。
解決
ちゃんと解決策は用意してありました。
「^(.+):」のように、変数にぶち込みたい部分を()でくくります。するとその変数を「\1」「\2」のように、順番に置換ボックスで呼び出せるようになります。
ああ、数千カ所じゃなくて1304カ所でした(^_^;
ふつうは変数というと$1とか$bufferとか$charとか、頭に$を付けますよねえ?正規表現チェックボックス隣の「?(ヘルプ)」もたいへん分かりにくいし。
こんなこと調べるのに1時間近くもかかってしまいましたが、手でやるより早いし、なにより見落としがありません(^_^ /
この記事は2016/02/11に公開され、125 views読まれました。