正则:分组取值
发布时间:2020-12-14 04:26:40 所属栏目:百科 来源:网络整理
导读:几个原则: 分组的编号从1开始 遇到()加1 遇到断言跳过,如(?:exp)这种格式的,如果要算的话就,((?:exp)) package cn.yuhui.com;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexUtil { public static void ma
几个原则: 分组的编号从1开始 遇到()加1 遇到断言跳过,如(?:exp)这种格式的,如果要算的话就,((?:exp)) package cn.yuhui.com;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexUtil {
public static void main(String[] args) {
String str = "219.133.40.15 - - [20/Apr/2016:07:00:01 +0800] "GET /RSS2.xml HTTP/1.1" 200 10664 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9b4) Gecko/2008030317 Firefox/3.0b4" -";
RegexUtil.Match(str,"(d+.d+.d+.d+)s(S.*?)s(S.*?)s[(S.*?)]ss"(S.*?)s(S.*?)s(S.*?)"s(S.*?)s(S.*?)s"-"s"(S.*?)"");
}
/**
*
* 正则表达式辅助类
*
* @param input 字符串
* @param regex 正则表达式
* @return 正则表达式匹配结果第一条
*/
public static void Match(String input,String regex) {
Pattern praiseCompile = Pattern.compile(regex);
Matcher praiseMatcher = praiseCompile.matcher(input);
int num = praiseMatcher.groupCount();
while (praiseMatcher.find()) {
System.out.println( praiseMatcher.group());
for(int i = 1 ; i<=num ; i++){
System.out.println( "praiseMatcher.group("+i+")------>"+praiseMatcher.group(i));
}
}
}
}
运行结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |