可能性の重複:
RegEx match open tags except XHTML self-contained tagsHOwはjavaで正規表現を使ってdivを解析しますか?
私は、Javaを使用してタグを解析中に問題を抱えています。
目標:
私の目標は、それがサブタグが含まれていても、その内容の全てを完全にdivタグを解析することで、
のようなHTMLから
<h2>some random text</h2>
<div id="outerDiv">
some text
<div>
some more text
</div>
last text
</div>
<div> some random div <b>bold</b></div>
私が解析したい
<div id="outerDiv">
some text
<div>
some more text
</div>
last text
</div>
しかし、私の内部のすべての内容は終了タグまでですこの形式か他のランダムな形式(私は式を使って試してみます)になります。)、
Regexが特定のIDを持つdivを解析するのを手伝ってください内容は完璧です。ここで
は私の表現(括弧の多くがちょうどより安全側にするように:))である:ここでは
((<div.*(class=\"afs\")(.)*?>)((.)*?)(((<div(.)*?>)((.)*?)((</div>){1}))*?)((</div>){1}))
は私のJavaコードです:
package rexp;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Rexp {
public static void main(String[] args) {
CharSequence inputStr = "asdasd<div class=\"af\">sasa<div><div><div class=\"afs\">as</div>qwessa</div></div></div>asd";
Pattern pattern = Pattern.compile("((<div.*(class=\"afs\")(.)*?>)((.)*?)(((<div(.)*?>)((.)*?)((</div>){1}))*?)((</div>){1}))");
Matcher matcher = null;
matcher = pattern.matcher(inputStr);
if (matcher.find()) {
System.out.println("Matched "+matcher.group(1));
} else {
System.out.println("Not Matched");
}
}
}
明白な答え〜http://stackoverflow.com/a/1732454/89391 – miku
あなたは自分の好意を持ち、適切なパーサーを使用してみませんか?正規表現はHTMLの解析には適していません。 – thkala
OPが唯一のタグを解析する必要がある場合は、ここでは正規表現は完全に受け入れ可能であり、状況によってはそれらを実行することができます。 – Bryan