私はいくつかのものを取得しようとしている複数行のHTML文書を持っています。私はjavaの正規表現を使用しています(私は知っている - XMLパーサはbla bla bla、ちょうどここに私と一緒にいてください:))。Pattern.DOTALL with String.replaceAll
dfahfadhadaaaa<object classid="java:com.sun.java.help.impl.JHSecondaryViewer" width="14" height="14">
<param name="content" value="../Glossary/glInterlinkedTask.html">
<param name="text" value="interlinked task">
<param name="viewerActivator" value="javax.help.LinkLabel">
<param name="viewerStyle" value="javax.help.Popup">
<param name="viewerSize" value="390,340">
<param name="textFontFamily" value="SansSerif">
<param name="textFontWeight" value="plain">
<param name="textFontStyle" value="italic">
<param name="textFontSize" value="12pt">
<param name="textColor" value="blue">
<param name=iconByID" value="">
</object>
sjtsjsrjrsjsrjsrj
私はこのHTMLを文字列に入力しました。
input = input.replaceAll("<object classid=\"java:com.sun.java.help.impl.JHSecondaryViewer.*?object>", "buh bye!");
明らかに、機能しません。しかし、Pattern.Detallでpattern.compileを使用すると、パターンマッチを得ることができます。
私の質問は、どうやってPattern.DOTALLのようなものをstring.replaceallで行うことができますか?
Aha! インラインフラグ "(?s)"が見つかりました。これは正規表現の冒頭に置くとDOTALLに相当します。問題が解決しました。 – guywhoneedsahand
これは大きな問題ですか?あなたは単に 'Pattern.compile'などを呼び出すことはできませんか、あるいはラッパーを書くことはできませんか? –
パターン作業の前に '(?s)'が付いていますか?他の言語でも動作しますが、Javaについてはわかりません。 – ninjalj