我通常只在stackoverflow上阅读并获得一些编程tipps,但今天我有一个关于正则表达式的问题。
我已经从JSoup解析了HTML-Code,并在<之前的每个空格中用正则表达式清除了并且在>之后问题是-Tag(和)之后或之前的空白,并且也被清除。
我可以添加到我的正则表达式中,以便在结束标记后面的空格(仅斜体,粗体和下划线)或开始标记之前的空格不会被删除(或者只剩下一个空格)?
我的正则表达式:
newHtml.select(UpgradeOldHtmlTags.BODY.toString()).html().replace("\n", "").replaceAll("\\s*<\\s*", "<")
.replaceAll("\\s*>\\s*", ">")
结果的一部分:
und <u>Schadstofffreisetzung</u>bei Reinigungs-
我想要的结果:
und <u>Schadstofffreisetzung</u> bei Reinigungs-
非常感谢你的帮助。
编辑:
使用JSoup解析后:
<p><br></p> <ol> <li><font color="#007b00"><span style="font-size: 18px;"><b><u>Sicherheitsdatenblatt </u></b></span></font>auf Anfrage erhältlich. (EUH210)</li> </ol> <p> www.google.de </p> <p><u>Keimbesiedelung</u> in Kanälen, Filtern und ggf. Befeuchterwasser der Anlage: </p>
在我的正则表达式之后:
<p><br></p><ol><li><font color="#007b00"><span style="font-size: 18px;"><b><u>Sicherheitsdatenblatt</u></b></span></font>auf Anfrage erhältlich. (EUH210)</li></ol><p>www.google.de</p><p><u>Keimbesiedelung</u>in Kanälen, Filtern und ggf. Befeuchterwasser der Anlage: </p>
例如,不应删除单词“Sicherheitsdatenblatt”和-tag之间的空格。
来自巴伐利亚的最好问候塞巴斯蒂安
答案 0 :(得分:0)
我知道你想在Java中使用它,但我能用JavaScript完成。看看正则表达式是否有帮助......
以下是regex101 https://regex101.com/r/5rt9he/1
上的匹配和JavaScript中的替换函数
let str = "und <u>Schadstofffreisetzung</u>bei Reinigungs-";
let result = str.replace(/(<u>)(.*?)(<\/u>)/, " $1$2$3 ");
console.log(result) ->
und <u>Schadstofffreisetzung</u> bei Reinigungs-
答案 1 :(得分:0)
我已经为自己做到了。谢谢你的帮助。
评论员:下次阅读比标题更多的内容!您将看到,我没有使用正则表达式来解析HTML。并且不要发布与主题无关的链接。
所以你不会吓跑那些只需要一点帮助的新海报,也可以帮助其他新海报...