你能帮我解决这个问题吗?我有这样的字符串:
<p class="youtube_sc mobile "><a href="vnd.youtube:bMHJODdp7-U" title="YouTube video player"><img src="http://i.ytimg.com/vi/bMHJODdp7-U/hqdefault.jpg" /><span class="play-button-outer" title="Click to play video"><span class="play-button"></span></span></a></p>
我只需要获得“ youtube:”之后的内容,在此示例的这一部分中:
bMHJODdp7-U
我使用我的例子的代码:
String path = strin.replaceAll(".*(youtube:\\S+)", "$ title");
strin是String行。但是这段代码只能取代我需要的“标题” 有什么想法吗?
答案 0 :(得分:1)
说明 - youtube:(.*?)\"
与youtube:
和"
之间的文字匹配
public static void main(String[] args) {
String s = "<p class=\"youtube_sc mobile \"><a href=\"vnd.youtube:bMHJODdp7-U\" title=\"YouTube video player\"><img src=\"http://i.ytimg.com/vi/bMHJODdp7-U/hqdefault.jpg\" /><span class=\"play-button-outer\" title=\"Click to play video\"><span class=\"play-button\"></span></span></a></p>";
Pattern pattern = Pattern.compile("youtube:(.*?)\"");
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
}
<强>输出强>
bMHJODdp7-U
答案 1 :(得分:0)
您可以使用此正则表达式进行搜索:
^.*?youtube:([^"]+).*$
并将其替换为:
$1
<强>代码:强>
String path = strin.replaceFirst("^.*?youtube:([^\"]+).*$", "$1");
//=> bMHJODdp7-U
答案 2 :(得分:0)
将正则表达式更改为
(?:youtube:)(\S+)(?:")