「H4sIAAA」はどのように入手できますか?Androidのhtml要素から値を取得する方法は?
String out='<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="H4sIAAA" autocomplete="off" />';
「H4sIAAA」はどのように入手できますか?Androidのhtml要素から値を取得する方法は?
String out='<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="H4sIAAA" autocomplete="off" />';
final String VALUE = "value=\"";
int start = out.indexOf(VALUE) + VALUE.length();
int end = out.indexOf("\"", start);
System.out.println(out.substring(start, end));
このようなものを行うための最善の方法は、正規表現を使用することです。
正確にあなたの問題に一致する単純な例:
String out= "<input type=\"hidden\" name=\"javax.faces.ViewState\" id=\"javax.faces.ViewState\" value=\"H4sIAAA\" autocomplete=\"off\" />";
Pattern pattern = Pattern.compile(".*(value=\"(\\w*)\").*", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(out);
if (matcher.matches()) {
System.out.println(matcher.group(2));
}
これが唯一の「=値」の1 accouranceで1つのライン入力のために働いています。
どうしますか?
それが使用してマッチャーを作成し、「値」属性と属性「値」の値を持つ第二のグループを持つグループ、
を文字列全体にマッチする正規表現マッチャーを準備マッチャが一致した場合、パターンと
「アウト」あなたの指定した文字列が、それは、属性が値であるグループのコンテンツ2をプリントアウト
正規表現を使用する利点は、それが何であるかにかかわらず、不要なすべてのコンテンツを無視して、必要な抽出物に集中させることができることです。 この例は、1つの値属性を持つ1行の入力に対してのみ有効です。ホールHTMLページを解析したいときは、必要に応じてそれを拡張する必要があります。
正規表現のドキュメント:正規表現をテストするhttps://docs.oracle.com/javase/7/docs/api/java/util/regex/package-summary.html 良い場所:http://regexr.com/
は、お楽しみに!