ただいま整理中。
Blogspot (Blogger?) に移行しました!
タイムライン | 技術系 | TIPS | ライフハック系 | その他 | 左記カテゴリ以外は、右の欄の下のタグクラウドへ!
.

2007年11月18日

Some Regular Expressions on sed, and perl.
カテゴリ: TIPS | タグ: Perl 正規表現 SED

※[ブックマーク]ボタンの中に delicious, reddit, digg, Google+(G+) のボタンもあります。
最近試してみる機会があったワン・ライナー。文中の2種類の語を入れ替えるには?いわゆるテキスト中での「置換」sedとperlで試してみた。
なお、下記実験では、アンダースコア(_)2つを入れ換え処理におけるメタなキャラクタとして使用している; つまり処理前の文には、この文字列が含まれないことが前提だ。



《スポンサードリンク》

まずは基本としてsedから。


TEXT="おもしろきこともなきよをおもしろく"; echo ${TEXT} \
 | sed -e 's@おもしろき@__おもしろく@g; s@\([^_][^_]\)おもしろく@\1__おもしろき@g; s@__@@g';
⇒おもしろくこともなきよをおもしろき


perlでは?


TEXT="おもしろきこともなきよをおもしろく"; echo ${TEXT}  \
 | perl -pe 's@おもしろき@__おもしろく@g; s@\([^_][^_]\)おもしろく@\1__おもしろき@g; s@__@@g';
⇒おもしろくこともなきよをおもしろく

う〜んちょっとへんだ。

グループ演算子のクォーテーションを取ってみる:
TEXT="おもしろきこともなきよをおもしろく"; echo ${TEXT}  \
 | perl -pe 's@おもしろき@__おもしろく@g; s@([^_][^_])おもしろく@\1__おもしろき@g; s@_
_@@g';
⇒おもしろくこともなきよをおもしろき

よし。所望の結果が得られた。




言語ごとの正規表現とふるまいについては、『詳説 正規表現』で丹念に論じられている。良い本だ。


posted by もふもふ at 00:12 | ロンドン 🌁 | Comment(0) | TrackBack(0) | カテゴリ: TIPS | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
トラックバックURLは,"Trackback(x)"のリンクを押すと表示されます.
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。