我有一个来自xml节点的字符串:
<p>
<a href="http://www.windoctor.it/hardware/amd-serie-a10-7850k-3-7-ghz-4-core/">
<img align="left" hspace="5" width="100" src="http://www.windoctor.it/wp-content/uploads/2014/02/g_21948019_001.jpg" class="alignleft wp-post-image tfe" alt="g_21948019_001" title="" />
</a>
Processori AMD A-Series APU l’APU più avanzata di AMD, l’AMD A10-7850K. Talmente rivoluzionaria da sfidare la definizione stessa di processore. Con 12 core di elaborazione (4 CPU + 8 GPU)3 con la scheda grafica AMD Radeon™ R7 e funzioni esclusive come la tecnologia AMD TrueAudio4 per un audio coinvolgente, è in grado di gestire Battlefield 4™ o qualsiasi altra cosa desideri. I processori AMD A10 ti permettono di: Liberare tutto…
<span class="read-more">
<a href="http://www.windoctor.it/hardware/amd-serie-a10-7850k-3-7-ghz-4-core/">
Read More »
</a>
</span>
</p>
<p>
The post
<a rel="nofollow" href="http://www.windoctor.it/hardware/amd-serie-a10-7850k-3-7-ghz-4-core/">
AMD SERIE A10-7850K
</a>
appeared first on
<a rel="nofollow" href="http://www.windoctor.it">
Win Doctor
</a>
.
</p>
我想获取image标签的src属性中的值。在C#中,我在正则表达式函数中使用"<img.+?src=[\"'](.+?)[\"'].+?>"
但在java中它不起作用。
提前致谢:)
答案 0 :(得分:0)
你可以做这样的事情
import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.io.FileUtils;
public class Image{
public static void main(String[] args) throws Exception {
String s = FileUtils.readFileToString(new File(
"E:\\workspace\\XYZ\\src\\xpath.txt"));
Pattern p = Pattern.compile(
"(.*?)(<img)(.*?)(src=\")(.*?)(\")(.*?)(\\/>)(.*?)",
// ^^^^^
// 1 2 3 4 5 6 7 8 9
Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = p.matcher(s);
while (m.find()) { //use while to find all images, and if for only the first one
System.out.print(m.group(5));
}
}
}
PS。 http://txt2re.com帮了很多忙。
答案 1 :(得分:-1)
你需要逃避反斜杠。
但更好的方法是使用XPath。