我有一大堆HTML需要从中提取一句话。字符串realClean
包含HTML。
<div class="smallfont">
<small>
Originally Posted By: chingy51o
</small>
</div>
我需要将chingy51o
拉出来。我已经有一段时间遇到这个问题,所以我扩大了我的搜索范围,只是拉出包含Originally Posted By:
的任何一行,希望一旦我能够分离出来,我就可以提取更多来自它的具体数据,但我甚至可以提取该行。
String authorString = "Originally Posted By: .*?";
if (realClean.contains(authorString)) {
Log.d("AUTHORS!", authorString + "\n");
}
但是没有返回任何值。
答案 0 :(得分:1)
创建一个Scanner
对象并搜索每一行。
String authorString = "Originally Posted By:";
Scanner scanner = new Scanner(realClean);
try {
while ( scanner.hasNextLine() ){
String line = scanner.nextLine();
if(line.contains(authorString){
Log.d("AUTHORS!", line.split(authorString)[1] + "\n");
}
}
答案 1 :(得分:1)
为什么不尝试这样的事情:
int start = realClean.indexOf("Originally Posted By: ") + 22;
int end = realClean.indexOf(newline, start);
String realAuthor = realClean.substring(start, end);
您可以将作者与文档的其余部分(如空格)分开的任何内容替换换行符
答案 2 :(得分:0)
我会阅读Java Patterns,尤其是capturing text in a group。
答案 3 :(得分:0)
假设realClean
是一个字符串,您需要知道String.contains()
将CharSequence
作为参数,而不是正则表达式。如果要对String执行正则表达式匹配,则需要使用String.matches()
或创建正则表达式模式并手动将String与其匹配。