本文目录一览:
- 1、java正则表达式截取URL
- 2、java中正则表达式匹配url(http://....这样的字符串怎么写
- 3、java正则表达式,捕获组重命名怎么搞
- 4、求一个java正则表达式,可以动态匹配url中传参的情况
- 5、JAVA 正则表达式获取字符串中的URL和标题
- 6、(急)如何用java正则表达式捕获超链接,能匹配双引号或单引号.
java正则表达式截取URL
String reg = ".*\\/\\/([^\\/\\:]*).*";
String str1 = " ";
System.out.println (str1.replaceAll (reg, "$1"));
String str2 = "";
System.out.println (str2.replaceAll (reg, "$1"));
java中正则表达式匹配url(http://....这样的字符串怎么写
好象正则表达式是以某种样式开始,某种样式结束的吧!写在里面的括号好象不用转义!
java正则表达式,捕获组重命名怎么搞
1. 捕获组及其编号:
1) 捕获组之前讲过,就是匹配到的内容,按照()子表达式划分成若干组;
2) 例如正则表达式:(ab)(cd(ef))就有三个捕获组,没出现一对()就是一个捕获组
3) 捕获组编号规则:
i. 引擎会对捕获组进行编号,编号规则是左括号(从左到右出现的顺序,从1开始编号;
ii. 例如:
2. 反向引用:
1) 捕获组的作用就是为了可以在正则表达式内部或者外部(Java方法)引用它;
2) 如何引用?当然是通过前面讲的用捕获组的编号来引用咯!
3) 正则表达式内部引用:
i. \X:X是一个十进制数,X的范围必须落在捕获组编号范围之内,该表达式就匹配X号捕获组所匹配到的内容;
ii. 从上面的描述可以看出,\X匹配的内容是必须X号捕获组匹配成功之后才能确定的!
iii. 例如:([ab])\1,匹配aabbcc的结果是aa和bb,\1的内容必须要让1号捕获组捕获后才能确定,如果1号捕获的是a那么\1就是a,1号捕获到了b那么\1就是b;
4) 正则表达式外部引用:就是用Matcher对象的start、end、group查询匹配信息时,使用捕获组编号对捕获组引用(int group);
3. 捕获组命名:
1) 如果捕获组的数量非常多,那都用数字进行编号并引用将会非常混乱,并且难以记忆每个捕获组的内容及意义,因此对捕获组命名显得尤为重要;
2) Java 7开始提供了对捕获组命名的语法,并且可以通过捕获组的名称对捕获组反向引用(内外都行);
i. 命名捕获组的语法格式:(?自定义名expr)
ii. 例如:(?year\d{4})-(?date\d{2}-(?day\d{2}))
a. 有三个命名捕获组year、date和day
b. 从左到右编号分别为1、2、3(编号同样是有效的)
3) 命名捕获组的反向引用:
i. 正则表达式内引用:\k捕获组名称
!例如:(?year\d{4})-\kyear可以匹配1999-1999
ii. 外部引用:Matcher对象的start、end、group的String name参数指定要查询的捕获组的名称;
求一个java正则表达式,可以动态匹配url中传参的情况
这个没有必要用正则表达式啊。因为分隔符就是"?"
String url = "/report/view?id=1name=test";
String result;
int pos = url.indexOf('?');
if(pos != -1)
result = url.substring(0, pos);
else
result = url;
System.out.println(result);
JAVA 正则表达式获取字符串中的URL和标题
String s = "movie title=\"电影1\" src=\"\"/ movie title=\"电影2\" src=\"\"/";
String mode = "movie\\s*title=([^]*)src=(?=\"?http|https)([^]*)/";
Pattern p = Pattern.compile(mode);
Matcher m = p.matcher(s);
HashMapString, String map = new HashMapString, String();
while (m.find()) {
System.out.println("find...");
String title = m.group(1);
String url = m.group(2);
System.out.println("title:" + title + ",src:" + url);
map.put(title, url);
}
(急)如何用java正则表达式捕获超链接,能匹配双引号或单引号.
a.+?href
这里使用 . 通配,? 找最小匹配,就能实现不管a 和href间有什么内容都能匹配到了,有没有样式,相同还是不同的样式,都没问题。
单双引号的问题,可以使用 [\"\'] 这种选择模式,同时使用()括号给括起来,以便在后面引用。