regex
正規表現でテキスト置きかえ処理, 複数行にマッチさせる方法
正規表現で、.(dot)は改行にはマッチしない。これがポイントだった。
そこで、Pattern.DOTALL オプションをつけて、regex をcompileしてやれば、 .(dot)は改行にもマッチする。
したがって、以下のような Testクラスがあった場合に、 改行含んだ状態のStringをコンストラクタに与えると、見事に複数行に渡っていても処理できる。
テキストファイル中の文字列 png を eps に置き換えるコード
現在、DocBookデータを構造化FrameMakerに流し込む・・・という仕事をしているのだが、 そのとき、DocBookはoxygenで編集しているが、oxygenはepsデータを表示できないため、 いったん png に置き換えてDocBook作成作業をしている。
しかし、FrameMakerに取り込む段階になって、拡張子を eps に戻してやる必要がある。 sedとかawkなんかでごく簡単に処理できるのではないかと思いつつも、とりあえず慣れているJavaで 取り急ぎ変換コードを作成したので、メモしておきます。
ご注意
行単位で処理しているのですが、一行に2回以上置き換えの必要が生じる場合に、最初だけしか置き換えられません。 たぶん簡単に改良できるはずですが、いまのところ、そんな不具合あります。
やや複雑な文字列の置き換え java.util.regex
HTMLやXML文書中の特定エレメントだけを対象にして、 文字列置き換え処理をしなければいけない、 という仕事に直面しているのだが、 正規表現を使った置き換えプログラムを何度も書くことになったので、ここに記録。
控えめなマッチ(正規表現)(python,regex)
正規表現は、デフォルトでいわゆる欲張りなマッチになるため、 それが不都合な場合がある。
たとえば、以下のような文字列があった場合...
{link:title|http://foobar/}
- マクロ名=link
- マクロ引数=title|http://foobar/
の二つの部分に文字列を分解したい。 これを、 正規表現で処理するにはどうしたらいいか。
拡張子を置き換えたい(javaの場合)
foo.txt から foo.html という文字列をつくる方法