Jakarta ORO一套文本处理工具,能提供perl5.0兼容的正则表达式,AWK-like正则表达式, glob表达式。
还提供替换,分割,文件名过虑等功能
package com.yesky.apachelog.util.regex;
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.MatchResult;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
/**
* 解析字符串: 返回符合记录的一行记录
*
* @author 110
*
*/
public class ApacheRegexString {
/**
* 返回符合条件的字符串
*
* @param aLineString
* @return:返回符合的字符,否则返回null
*/
public static String regexString(String aLineString) {
String regex = "\\s'GET\\s([^']+\\s)";
PatternCompiler compiler = new Perl5Compiler();
Pattern pattern = null;
try {
pattern = compiler.compile(regex);
} catch (MalformedPatternException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PatternMatcher matcher = new Perl5Matcher();
if (matcher.contains(aLineString, pattern)) {
MatchResult result = matcher.getMatch();
return result.group(1);
}
return null;
}
public static void main(String[] args) {
ApacheRegexString reg=new ApacheRegexString();
String s="124.135.38.249 - - [19/Nov/2009:17:35:42 +0800] 'GET /1.gif?&574224&613&1 HTTP/1.1' 200 35 'http://movie.yesky.com/movie613.html' 'Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1; QQPinyinSetup 620; TencentTraveler 4.0)'";
String ss=reg.regexString(s);
System.out.println(ss);
}
}
在这里附上对应的jar包
分享到:
相关推荐
Java中正则表达式使用方法详解.docx 网上搜集的Java中正则表达式使用方法详解
JAVA中正则表达式的应用 个人在网上 自己在家里写一些 java中常用的正则表达式 文件格式doc
在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/ 或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则...
java中正则表达式Pattern类的应用,基本上用来验证之类的应用
java程序开发一些较实用的正则表达式用法,简单易懂,希望对广大程序员朋友有所帮助。
主要介绍了java中正则表达式实例详解的相关资料,需要的朋友可以参考下
获取每次使用引起小损失的分组。如果你实际并不需要获取一个分组内的文本,那么就使用非捕获分组。
有重点和调理,一看就会了. 只要涉及java两个类
NULL 博文链接:https://summerbell.iteye.com/blog/611838
Java中正则表达式去除html的标签,主要目的更精确的显示内容,接下来通过本文给大家介绍Java中正则表达式去除html标签的方法,需要的朋友参考下
主要介绍了Java中正则表达式的使用和详解,包括匹配验证验证email是否正确,在字符串中查询字符或者字符串的代码实例,需要的朋友可以参考下
主要介绍了Java中正则表达式split()特殊符号使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
/** * @param 日期验证,验证的格式有: * "yyyyMM","yyyyMMdd","yyyyMMdd HH:mm:ss", * "yyyy-MM","yyyy-MM-dd","yyyy-MM-dd HH:mm:ss" * "yyyy.MM","yyyy.MM.dd","yyyy.MM.dd HH:mm:ss" * "yyyy/MM","yyyy/MM...
]js正则表达式基本语法(精粹): //www.jb51.net/article/72044.htm ... 在JDK1.3及之前的JDK版本中并没有包含正则表达式的类,如果要在Java中使用正则表达式必须使用第三方提供的正则表达式库,最有名的就是Jakart
主要介绍了Java正则表达式的使用和详解(下)的相关资料,包括常用正则表达式和正则表达式语法,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
关于JAVA中正则表达式的速查表,提供了比较全面的正则表达式规则和一些简答的例子