• 締切済み

2chのアスキーアートと顔文字の正規表現

java言語でpatternメソッドを使用して2ch掲示板のdatファイルのアスキーアートと顔文字を除去しようと思うのですが、アスキーアートと顔文字の正規表現をどう書いたら良いか解りません。 アスキーアートは空白で始まってタブや全角\などの記号を多く含んで空白で終わってるので"/s"+"/t | /\"+"/s"といった感じで何度も挑戦しましたが殆ど除去できません。 アドバイスよろしくお願いします。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

java の正規表現文字列作成時に \ バックスラッシュは、4個書いてようやく一個のバックスラッシュ文字と解釈されるあたりの問題かな? \s は、ソースからプログラム内文字列変換時に、\ が無視されてしまう(または、バイナリ文字になってしまう)ので、\\ が必要 プログラム内文字列から、正規表現解釈時に、 \s だとこれも別のバイナリ文字と解釈されるので、ここの時点で \\s が必要 翻って、元ソースは、さらに\を2重にしないといけないことになる よって  \\\\s としないと 空白マッチが出来ない。タブコードも \\\\t となる

zetgood
質問者

補足

御返答ありがとうございました。やはりjavaで正規表現を書くのは難しいみたいですね。 実際に(\|∪|∩|⌒|从|;|:|?|?|?|?|?|?|《|\\\\t|\\\\s)*と書いているのですがコンパイルが通った後、从にマークがついて読み込みエラーが発生して実行できません。 この書き方に何か間違いはあるでしょうか?宜しくお願い致します。

関連するQ&A