【发布时间】:2011-09-17 21:47:49
【问题描述】:
我正在尝试在 Java 中使用以下正则表达式,它应该与任何 lang="2-char-lang-name" 匹配:
String lang = "lang=\"" + L.detectLang(inputText) +"\"";
shovel.replaceFirst("lang=\"[..]\"", lang);
我知道正则表达式会将单个斜杠解释为斜杠而不是转义字符(因此我的代码不起作用),但如果我转义斜杠," 将不再被转义我会得到一个语法错误。
换句话说,我怎样才能在正则表达式中包含"? "lang=\\"[..]\\"" 不起作用。我也尝试了三个斜线,也没有任何匹配项。
我也知道您不使用正则表达式来解析 XML/HTML 的一般规则。 (并且shovel 是一个XML) 但是,我所做的只是寻找位于XML 前30 个字符内的lang 属性,并且我想替换它。在这种情况下使用正则表达式真的是个坏主意吗?我不认为使用 DOM 会更好/更有效。
【问题讨论】: