这是原始的
<a href="http://a">b</a>现在希望用正则匹配出string里面有多少个下面写法的字符串 <a href="http://任意1或https://任意2">任意3</a>
其中任意1任意2是https或者http开头的link(要符合link标准)
任意3是link的名字 例如:
----------------------
String =
<a href="http://a">b</a>
<p> <body>
<a href="http://a">b</a>
<img src="http://sina/sina.gif" />
<a href="http://a.b.c">b</a>
----------- 则结果为1
解决方案 »
- 不知道这个地方时怎么实现的?51didu。怎么能跟自己系统的业务绑定呢?
- java中如何使填入的图像自动适合控件的大小
- 关于"JAVA中八皇后中递归回溯算法"中的几点疑问,请大家帮忙看看!!
- 生成固定位数的字母流水号?类似这样的 AAAA AAAB AAAC
- java項目
- 新手继续提问,作业又卡了,for循环有点晕了
- 菜鸟问题:如何安装设置J2sdk5.0!
- 我想实现按下表单中的一个按钮后弹出一个对话框要求输入数字,确定后将数字在当前页面中显示(高手请进!)
- 在使用中,经常出现提示为:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt,是什么意思,怎样解
- 我下载ant,设置好了PATH,ANT_HOME,但一运行就报错Provider org.apache.crimson.jaxp.SAXParserFactoryImpl could not be instantiated
- Java中如何获取鼠标滚轮事件?
- javamail 收邮件问题,帮忙解决一下。
import java.util.regex.Pattern;public class RegxATag { public static void main(String[] args) {
//<a[^<>]+href="https?://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]"[^<>]*>.*</a>
final String REGEX = "<a[^<>]+href=\"https?://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]\"[^<>]*>.*</a>";
String test =
"<a href=\"http://a\">b </a>\n" +
"<p> <body>\n" +
"<a href=\"http://a\">b </a>\n" +
"<img src=\"http://sina/sina.gif\" />\n" +
"<a href=\"http://a.b.c\">b </a> ";
Pattern p = Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(test);
int n = 0;
while (m.find()) n++;
System.out.println("找到" + n + "个匹配的标签");
}}
public static void main(String[] args) {
String str = "";
Map map=new Hashtable();
Pattern pattern = Pattern.compile("<a href=\"https?[^>]+>([^<]+)</a>",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = pattern.matcher(str);
while(m.find()){
//在这里把数据进行判断,然后压到map里,
//如果map里有这条记录,记录数+1,
}
}