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中正则表达式使用方法详解 正则表达式是字符构成的串,定义了一个用来搜索匹配字符串的模式。 Java中的正则表达式使用方法详解将为读者提供一个详细的指南,了解正则表达式的基础知识和使用方法。 一、正则...
JAVA中正则表达式详解
### 浅谈Java中正则表达式的优化方法 在日常的软件开发过程中,正则表达式作为一种强大的文本处理工具被广泛应用于数据验证、文本搜索与替换等场景之中。尤其是在Java语言环境中,`java.util.regex`包提供了丰富的...
在Java中,正则表达式是通过`java.util.regex`包中的类来实现的,如`Pattern`和`Matcher`。下面将详细介绍正则表达式的常见语法和在Java中的使用。 首先,正则表达式的基本元素包括: 1. `.`:匹配任何单个字符,...
JAVA中正则表达式的一个简单例子.pdf
java中正则表达式Pattern类的应用,基本上用来验证之类的应用
在本文中,我们将深入探讨Java中正则表达式的使用方法,以及如何通过它们来增强我们的代码功能。 首先,Java中的正则表达式支持是通过`java.util.regex`包提供的。这个包包含三个主要类:`Pattern`、`Matcher`和`...
在Java中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分割字符串。自从JDK 1.4开始,Java提供了内置的正则表达式API,位于`java.util.regex`包中,主要包括`Pattern`和`Matcher`两个核心类。 1. ...
Java中的正则表达式是处理字符串的强大工具,用于查找、替换和验证文本模式。下面将详细介绍标题和描述中提到的一些核心概念和用法。 1. **^ 和 $** - `^` 表示字符串的开始,用于确保匹配的模式出现在行首。例如...
有重点和调理,一看就会了. 只要涉及java两个类
在Java编程语言中,正则表达式是一种强大的文本处理工具,用于模式匹配、字符串搜索和替换。下面将详细解释Java中的正则表达式实例,包括其基本概念、使用方法以及常见的应用。 1. **普通字符**: 在Java中,正则...
Java中正则表达式的使用和详解 Java中正则表达式的使用和详解是Java开发中非常重要的一部分。正则表达式是一种强大的字符串匹配工具,可以用来验证字符串是否符合一定的规则,或者在字符串中查询特定的字符或字符串...
Java中正则表达式split()特殊符号使用详解 Java中的split()方法是String类中的一个方法,该方法使用正则表达式来将字符串分割成多个子字符串。然而,在使用split()方法时,需要注意特殊符号的使用,否则可能会导致...
接下来,我们将详细介绍Java中正则表达式的使用方法,并举例说明如何使用split()方法进行字符串查找,replace()方法进行字符串替换,以及如何使用Pattern和Matcher类来获取字符串中的特定部分。 首先是字符串查找,...
本文将详细介绍Java中正则表达式的使用方法,并通过Jakarta-ORO库来演示具体的实现过程。 #### 二、正则表达式基础知识 ##### 2.1 句点符号 句点符号(`.`)是正则表达式中最基础的元素之一,它代表任意单个字符。...
本文将详细介绍Java中正则表达式的分组引用概念及其应用。 #### 分组引用的格式与原理 分组引用是指通过在正则表达式中使用圆括号`()`来定义一组字符或模式,并能够在之后的表达式中通过特定的方式重新引用这些...