2011-06-27 16 views
0

私はものごとでいっぱいの大きなHTMLファイルを持っています。REGEX - 何かの周りのものを取り除く?

どこかにそのファイルで、私はものを取り除くが、間にあるものを残して取得する必要があり、この

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

のような行があります。

私はJavaを使用していますが、適切なアプローチは正規表現であると仮定しています。正規表現には十分な経験がありません。

もし何か助けを借りれば、ここに私の「暗闇の中で刺す」ことがあります。

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

答えて

1

これは、あなたが望むものである:

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

ありがとうございました。ちなみに、この文脈で$ 1は何を意味していますか? – guywhoneedsahand

+0

@guywhoneedsahand、 '$ 1'は最初のキャプチャグループと一致します(親子関係にあります)。 '(。*?) 'でマッチしたもの –

+0

Ok。みんなありがとう! – guywhoneedsahand

0
myString.replaceAll("<span class=\"xcomponent\">(.*?)</span>", "$1") 
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); } 

は、ブラケットを移動する自由を感じますregexpであなたがそれを取り除きたい場合はタグをindiseし、内側のテキストだけを残してください。

0

私はラインが

<Something>WHATYOU WANT</closeSomething> 

のように常に見え、あなたが何かを気にしないことを前提としています。正規表現より次のようになります:

<.*>.*</.*> 

この行では、行に上記のパターンが含まれていることを確認するだけです。 今、あなたはちょうどあなたが何を望むかである第1、第2または第三のいずれか

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

各<で分割方法と分割を使用して>。私は間違ってちょうどちょっと遊ぶなら、それを試していない。

関連する問題