我有一個html文件,我必須將html內容加載到我的活動中,我甚至沒有聽說過正則表達式。你可以幫我做這個嗎?什麼是正則表達式以及如何使用正則表達式加載html內容android
我有下面的HTML文件,我需要得到{{書名}}和
我有一個html文件,我必須將html內容加載到我的活動中,我甚至沒有聽說過正則表達式。你可以幫我做這個嗎?什麼是正則表達式以及如何使用正則表達式加載html內容android
我有下面的HTML文件,我需要得到{{書名}}和
我會使用類似的東西:
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class SimpleRegexExample {
//TODO: Load your html content from file
protected String html = "<html>\n"
+ "<head>\n"
+ " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n"
+ " <meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n"
+ " <title></title>\n"
+ " <meta name=\"Generator\" content=\"Cocoa HTML Writer\">\n"
+ " <meta name=\"CocoaVersion\" content=\"1038.36\">\n"
+ " <style type=\"text/css\">\n"
+ " p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 26.0px Helvetica}\n"
+ " p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Helvetica}\n"
+ " p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}\n"
+ " p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Helvetica; min-height: 23.0px}\n"
+ " p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}\n"
+ " </style>\n"
+ "</head>\n"
+ "\n"
+ " <body>\n"
+ " <p class=\"p1\"><b>{{BookName}}</b></p>\n"
+ " <p class=\"p2\">by {{AuthorName}}</p>\n"
+ " <p class=\"p3\"><br></p>\n"
+ " <p class=\"p3\"><br></p>\n"
+ " <p class=\"p4\"><span class=\"Apple-converted-space\"> </span></p>\n"
+ " <p class=\"p5\">{{AuthorBio}}</p>\n"
+ " <p class=\"p3\"><br></p>\n"
+ " <p class=\"p3\"><br></p>\n"
+ " <p class=\"p5\">{{Credits}}</p>\n"
+ " <p class=\"p3\"><br></p>\n"
+ " <p class=\"p3\"><br></p>\n"
+ " </body>\n"
+ "</html>\n";
public SimpleRegexExample() {
// Split the html text into single lines
StringTokenizer st = new StringTokenizer(html, "\n");
// Initialize the regex
String regex = "\\{\\{(.*?)\\}\\}";
Pattern p = Pattern.compile(regex);
// Parses each line
while (st.hasMoreTokens()) {
String token = st.nextToken();
Matcher m = p.matcher(token);
// Searches for matches
while (m.find()) {
if (m.group(1) != null) {
// TODO: Set here your replacement
html = html.replace("{{" + m.group(1) + "}}", m.group(1));
}
}
}
// Prints the result
System.out.println(html);
}
public static void main(String[] args) {
new SimpleRegexExample();
}
}
正則表達式使用正則表達式的內容如何處理,請幫我在此先感謝其他地區定義和搜索字符串中的文本模式。
只需檢查下面的鏈接,一個關於正則表達式用法的很好解釋的stackoverflow問題。
How to use a regular expression and assign the result to variables in Android?
我希望它可以幫助你。
擺脫XML/HTML內容的最好的方式是XPath的可以直接有一個查詢來獲取元素DOM包含您所需要的數據。
如果HTML是你的內容,那麼我會建議你有一個屬性,它指定它是書名。
您可以使用XPath查詢這樣
// P [@類= 'P1']/B
條件的XPath是HTML文件應該有一個適當的結束標記。
但是,如果你想使用正則表達式,然後使用這個
.+<p class=\"p1">
這個表達式將匹配的P1級和u需要獲得這個表達式最終指數獲得的B標籤的位置後, p標籤。
U可以嘗試
您表達我應該替換的文件路徑的HTML? – cavallo 2012-02-07 13:28:01
我不明白你的意思。 – CSchulz 2012-02-07 13:37:22