REGEX - 删除某些东西?

时间:2011-06-27 16:35:03

标签: java regex

我有一个很棒的HTML文件。

在该文件的某处,有一行像这样

<span class="xcomponent">pls do not delete me</span>

我需要摆脱这些东西,但要留下它们之间的东西。

我正在使用Java,我认为正确的方法是正则表达式 - 我只是没有足够的经验来使用正则表达式来解决这个问题。

如果有任何帮助,这就是我的'黑暗刺中'。

.*?(<span class="xcomponent">.*?</span>).*?

4 个答案:

答案 0 :(得分:1)

这就是你想要的:

Pattern p = Pattern.compile("<span class="xcomponent">(.*?)</span>");
Matcher m = p.matcher(html);
m.replaceAll("$1");

答案 1 :(得分:0)

myString.replaceAll("<span class=\"xcomponent\">(.*?)</span>", "$1")

答案 2 :(得分:0)

我是从记忆中写下来的,所以会有一些msalle错误:

Pattern p = Pattern.compile(".*?(<span class="xcomponent">pls do not delete me</span>).*");
Matcher m = p.matcher(yourLine);
if (matcher.matches()) { yourLine = matcher.group(1); }

如果你想摆脱标签,请随意在正则表达式中移动括号,并且只留下内部文本。

答案 3 :(得分:0)

我认为这条线看起来总是像

<Something>WHATYOU WANT</closeSomething>

你并不关心这件事。比正则表达式看起来像:

<.*>.*</.*>

使用此行,您只需使用匹配器确保该行包含上面的模式。 现在你只需使用split方法并在每个&lt;和&gt;

string.split("<|>")[2]

第一个或第三个是你想要的。如果错误的话,我没有测试它。