我有一個多行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 = input.replaceAll("<object classid=\"java:com.sun.java.help.impl.JHSecondaryViewer.*?object>", "buh bye!");
很明顯,它不工作。但是,如果我使用pattern.compile和Pattern.DOTALL,我可以獲得模式匹配。
所以,我的問題是 - 我怎麼能做一些像Pattern.DOTALL與string.replaceall?
啊哈! 找到內聯標誌「(?s)」。如果你把它放在正則表達式的開頭,它就相當於DOTALL。問題解決了。 – guywhoneedsahand
這是一個主要問題?你不能只調用'Pattern.compile'等,或者寫一個包裝? –
是否在模式工作中預先加入了'(?s)'?它適用於其他語言,不確定Java。 – ninjalj