`
lixin_2002
  • 浏览: 21557 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

java正则表达式小结

阅读更多

javaAPI:

 

public static void main(String[] args) {
        String str = "lixin_2002@163.com";
        String reg = "([a-zA-Z0-9]+)\\@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+$";
        Pattern p = Pattern.compile(reg); 
        Matcher m = p.matcher(str);
        System.out.println(m.find());
        
}

 

 jakarta-oro的使用1(简单匹配):

 

 

    public static void main(String[] args) throws MalformedPatternException {
	//取出日志文件的IP和时间
        String log = "172.26.155.241 - - [26/Feb/2001:10:56:03 -0500]";
        String logreg = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s-\\s-\\s\\[([^\\]]+)\\]";
        PatternCompiler pc = new Perl5Compiler();
        org.apache.oro.text.regex.Pattern p = pc.compile(logreg);
        PatternMatcher pm = new Perl5Matcher();
        System.out.println(pm.contains(str,p));
        if(pm.contains(log,p)){
            org.apache.oro.text.regex.MatchResult mr = pm.getMatch();
            System.out.println("ip: " + mr.group(1));
            System.out.println("time: " + mr.group(2));
        }
    }

  jakarta-oro的使用2(匹配多个):

 

	public static void main(String[] args) throws MalformedPatternException {
		//取出HTML标签里的属性值及值  分两次
		String html = "<font face='Arial, Serif' size='12' color='red'>";
		String reg1 = "<[a-z]+\\s+(.+)>";
		String reg2 = "([a-z]+)='([^']+)'";
		PatternCompiler compiler = new Perl5Compiler();
		Pattern pattern = compiler.compile(reg1);
		PatternMatcher matcher = new Perl5Matcher();
		System.out.println(matcher.contains(html, pattern));
		if(matcher.contains(html, pattern)){
			MatchResult result = matcher.getMatch();
			String arrs = result.group(1); //先取出属性列表
			System.out.println(arrs);
			Pattern pattern2 = compiler.compile(reg2);
			PatternMatcherInput input = new PatternMatcherInput(arrs);
			while(matcher.contains(input, pattern2)){
				result = matcher.getMatch();
				System.out.println(result.group(1)+"=" + result.group(2));
			}
		}
	}

   jakarta-oro的使用3(字符串替换):

	public static void main(String[] args) throws MalformedPatternException {
		//将str1和str2 的前面aaa部分替换成www 而后面的不替换
		String str = "aaa&abc";
		String str2 = "aaa&cde";
		String reg = "aaa&(.+)";
		PatternCompiler compiler = new Perl5Compiler();
		Pattern pattern = compiler.compile(reg,Perl5Compiler.CASE_INSENSITIVE_MASK);
		PatternMatcher matcher = new Perl5Matcher();
		String result = Util.substitute(matcher, pattern, 
				new Perl5Substitution("www&$1"), //注意:$1 $2等 表示已经匹配且提取出来的组
				str,Util.SUBSTITUTE_ALL);
		System.out.println(result);
	}

 

分享到:
评论

相关推荐

    Java 正则表达式小结

    Java正则表达式是Java编程语言中的一个强大工具,它用于在字符串中进行模式匹配和查找、替换等操作。在本文中,我们将深入探讨Java正则表达式的概念、语法以及如何在实际编程中使用它们。 1. **正则表达式基础** -...

    详解Java判断是否是整数,小数或实数的正则表达式

    在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...

    正则表达式小结

    在Java编程中,正则表达式被广泛应用于数据验证、文本提取、字符串处理等多个场景。以下是对Java中正则表达式使用的一些核心概念和常用模式的详细解释: 1. **正则表达式编译与匹配过程**: - 正则表达式首先需要...

    精通正则表达式~~~

    精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...

    js:校验IPv6地址的正则表达式

    jquery 正整数数字校验正则表达式JavaScript正则表达式校验非零的正整数实例利用js正则表达式...Java正则表达式校验邮箱与手机号jQuery中校验时间格式的正则表达式小结校验普通电话、传真号码的正则表达式(可以+开头...

    正则表达式参考

    #### 四、小结 通过上述内容可以看出,《正则表达式口袋参考书》涵盖了多种主流编程语言下的正则表达式实现细节,对于想要深入学习这一领域的开发者来说,是一本非常有价值的参考书籍。无论是在日常开发工作中还是在...

    匹配移动/联通/电信手机号码正则表达式小结

    中国移动 134.135.136.137.138.139.150.151.152.157.158.159.187.188 ,147(数据卡) 中国联 通130.131.132.155.156.185.186 中国电信133.153.180.189 CDMA 133,153 正 则如下: 代码如下: /// &lt;summary&gt; /// 匹配移动...

    Java中replace、replaceAll和replaceFirst函数的用法小结

    `target`和`replacement`都是普通的字符串,不涉及正则表达式。例如,在`"abac".replace("a", "\\a")`中,`"a"`被`\a`替换,结果为`"\ab\ac"`,因为`\\`表示一个反斜线。 2. `replaceAll(String regex, String ...

    Mastering Regular Expressions

    随着时间的发展,不同的开发者独立开发了多种质量、功能和复杂度各不异的Java正则表达式包。直到2002年,随着Java 1.4的发布,Sun公司正式推出了其内置的`java.util.regex`包,为Java社区提供了一个标准的正则表达式...

    Tedu正则表达式与Object与自动装箱与拆箱

    #### 小结 本文介绍了正则表达式的基础语法及其在 Java 字符串中的应用,并详细讨论了 `String` 和 `StringBuilder` 类的特性和方法。同时,还解释了 `Object` 类的重要性以及自动装箱和拆箱的概念。这些知识点对于...

    Mastering Regular Expressions, 3rd Edition pdf

    ### 小结 - **正则表达式**作为一种强大的文本处理工具,在多种编程语言中都有广泛应用。 - 《Mastering Regular Expressions, 3rd Edition》不仅适合从未接触过正则表达式的读者入门学习,也适合已有基础的读者...

    javascript 正则表达式用法 小结

    javascript正则表达式用法: 代码如下:function checkreg(myreg,mytext) { if(myreg.test(mytext) { alert&#40;“ok”&#41;; return true; } else { return false; } } //另一种写法 代码如下:function checkreg...

    javascript之正则表达式基础知识小结

    元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要用“\”来进行转移。 如果记不清楚那些标点符号需要转移,可以在使用标点符号时都使用反斜杠“\” 简单匹配 1、直接量 /javascript/ 匹配带有...

    java获取文件扩展名的方法小结【正则与字符串截取】

    本文将介绍两种方法来获取Java中的文件扩展名:使用正则表达式和字符串截取。 ### 使用正则表达式获取文件扩展名 正则表达式是一种强大的文本匹配工具,可以用来匹配、查找和提取特定模式的字符串。在Java中,我们...

    javascript中match函数的用法小结

    javascript中的match函数是使用正则表达式对字符串进行查找,并将查找的结果作为数组返回,在实际开发中非常的有用,使用方法如下: stringObj.match(rgExp) 其中stringObj是必选项。对其进行查找的 String 对象或字符...

    计算机等级考试二级java模拟题八.pdf

    以上是对给定文件中涉及到的计算机科学相关知识点的详细解释,涵盖了软件开发方法、算法分析、数据结构、Java编程、数据库设计、I/O操作、正则表达式、GUI编程、线程管理和Java Applet等多个方面。

    Java课设:内有课程设计报告以及完整代码

    8. **正则表达式**:正则表达式是用于匹配字符串模式的强大工具,在输入验证、数据提取等方面非常有用。例如,可以使用正则表达式检查用户输入的格式是否正确。 9. **格式化显示**:Java提供了一系列的类,如...

    Java实验指导书(实验七).doc

    #### 五、实验小结 通过本次实验,不仅巩固了对Java中字符串、正则表达式、数学运算、日期处理以及集合框架的理解,还提高了编程实践能力和问题解决能力。实验过程中的问题记录与解决也为后续的学习提供了宝贵的参考...

    Java中String.split()用法小结

    总之,`String.split()`方法是Java中进行字符串切割的重要工具,正确理解和使用正则表达式转义规则是关键。在编写代码时,一定要注意特殊字符的处理,确保它们被正确地解析为分隔符,而不是正则表达式的一部分。同时...

Global site tag (gtag.js) - Google Analytics