我有一个很大的 HTML 文件,里面有很多行,比如<h1 id="anwendungsfälle-und--funktionen">Anwendungsfälle und -funktionen</h1>
<h1 id="öl">Öl</h1>我需要替换所有变音字符 (ü,ö,ä) 但只替换 <> 括号之间的那些(所以只用于标题 id,没有其他地方。<h1 id="anwendungsfaelle-und--funktionen">Anwendungsfälle und -funktionen</h1>
<h1 id="oel">Öl</h1>Id 可能包含数字、单字符和双字符。我已经没有了如何构建 Java 正则表达式来匹配这些 id 的想法。我试过类似的东西(<h)\d\s(id=")[A-Za-z0-9]*([-]{1}[A-Za-z0-9]*)*(">)但这不起作用(我知道它不是 Java 正则表达式,只是一个例子)。
2 回答
HUH函数
TA贡献1836条经验 获得超4个赞
您的正则表达式需要如下所示:
(?<="\\Wid\\=\\\"[^\"]*)(ä)(?=[^\"]\\\"") // -> ae
(?<="\\Wid\\=\\\"[^\"]*)(ö)(?=[^\"]\\\"") // -> oe
(?<="\\Wid\\=\\\"[^\"]*)(ü)(?=[^\"]\\\"") // -> ...
(?<="\\Wid\\=\\\"[^\"]*)(Ä)(?=[^\"]\\\"")
(?<="\\Wid\\=\\\"[^\"]*)(Ö)(?=[^\"]\\\"")
(?<="\\Wid\\=\\\"[^\"]*)(Ü)(?=[^\"]\\\"")
(?<="\\Wid\\=\\\"[^\"]*)(ß)(?=[^\"]\\\"") // -> ss
请意识到,这并不完美。可能存在边缘情况,在这种情况下这会失败。
添加回答
举报
0/150
提交
取消