`

java 正则表达式 常见问题

阅读更多
public static void main(String[] args) {
		// (?<=A)B(?=C) 模式 
		// 查找"以A开始,以C结束,中间含B的字符串",然后匹配出B
		String input="<html>xxxxx</html>";
		Pattern p=Pattern.compile("(?<=<(\\w+)>).*(?=<\\/\\1>)");
		Matcher m=p.matcher(input);
		System.out.println(m.find());
		System.out.println(m.group());
	}
 

 

异常:  Look-behind group does not have an obvious maximum length

 

 

网上搜集到的相关帖子:

http://www.bennadel.com/blog/1132-REMatchGroup-UDF-To-Return-Only-Specified-Group-In-RegEx-Pattern.htm

 

http://stackoverflow.com/questions/1971652/existence-of-obvious-maximum-length-of-look-behind-group-in-java

 

http://stackoverflow.com/questions/1536915/regex-look-behind-without-obvious-maximum-length-in-java

 

解决办法: (Integer.MAX_VALUE-1)替换成具体数字也行

 

Pattern p=Pattern.compile("(?<=<(\\w{0,"+(Integer.MAX_VALUE-1)+"})>).*(?=<\\/\\1>)");

 1.  为什么是"Integer.MAX_VALUE-1",而不是"Integer.MAX_VALUE".还不是很清楚,后面再查资料

 2.  (Integer.MAX_VALUE-1)替换成具体数字也行

 

 

附:

另外csdn一个帖子,"火龙果"对正则的相关信息作了很好的解释,链接地址为:

http://topic.csdn.net/u/20080325/17/fb7a3e8d-029a-4d8e-89ae-77a9d28ec301.html

 

据说,"火龙果"的正则很厉害,以后要常去csdn学习正则啊!!

 

 

 

另外一个学习正则的地方:http://www.regexlab.com/zh/regref.htm

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java 正则表达式应用jar包 regex-smart.jar

    Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...

    Java正则表达式详细讲解

    本讲解将深入探讨Java正则表达式的概念、语法以及常见用法。 ### 1. 正则表达式基础 正则表达式(Regular Expression)是一种模式,用来匹配一系列字符串。在Java中,字符串与正则表达式之间的操作主要由`Pattern`...

    Java正则表达式详解(非常适合入门

    ### Java正则表达式详解 #### 一、正则表达式的重要性及应用 正则表达式,作为一种强大的文本处理工具,对于程序员而言是不可或缺的基本技能之一。它在文本的匹配、搜索和替换等方面发挥着不可替代的作用。尤其在...

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

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

    常用正则表达式HTML,JAVA合集

    这个合集提供的HTML和Java正则表达式实例,为开发者提供了一个快速参考的工具,帮助他们在开发过程中快速有效地实现数据验证功能。理解并熟练运用这些正则表达式,对于提高代码质量和用户体验都有极大的帮助。在实际...

    java正则表达式匹配全角空格

    ### Java正则表达式匹配全角空格 在Java编程中,处理字符串是非常常见的需求之一。其中,使用正则表达式来对字符串进行拆分、替换等操作是一种非常高效的方法。本文将详细介绍如何使用Java中的`split()`方法,并...

    java正则表达式.pdf

    ### Java正则表达式详解 #### 一、引言 正则表达式是计算机科学中的一个强大工具,用于处理文本数据。随着Java的发展,自J2SE 1.4版本开始,Java正式引入了对正则表达式的支持,并提供了一系列功能强大的API。本文...

    Java根据正则表达式生成字符串—Xeger,automaton

    在Java编程语言中,处理字符串和正则表达式是一项常见的任务。正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和...

    正则表达式自动生成器 V2.0.0.1 官方多语版

    `使用说明.txt`可能是软件的使用指南,包含了如何启动、操作和解决常见问题的步骤。`当下软件园.url`是一个快捷方式,指向一个网站,用户可以在那里找到更多软件资源或获取更新。 在实际工作中,正则表达式自动生成...

    正则表达式 Java 判断字串是否合理

    根据给定的文件信息,我们可以总结出以下关于Java正则表达式的重要知识点: ### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,...

    正则表达式工具类,正则表达式封装,Java正则表达式

    总之,`RegUtils`是一个为了简化Java正则表达式操作而设计的工具类,它通过封装各种常见的正则表达式操作,使得开发者可以更方便地在代码中进行文本处理。在实际项目中,此类的使用能提高代码的可读性和可维护性。...

    正则表达式大全.docx

    以下是一些常见的正则表达式模式及其用途: 1. 用户名验证:`/^[a-z0-9_-]{3,16}$/` - 这个正则表达式用于检查用户名是否合法,它只接受小写字母、数字、下划线和破折号,且长度在3到16个字符之间。 2. 密码验证:...

    java正则表达式学习笔记

    以上列举了一些常见的正则表达式应用场景及其匹配规则,可以帮助开发者更好地理解和掌握Java正则表达式的使用技巧。通过这些示例,我们可以看到正则表达式在实际开发中的强大作用,并且能够灵活应用于各种复杂的字符...

    正则表达式判断密码强度

    正则表达式(Regular Expression)是一种强大的工具,用于在字符串中匹配特定模式,它在这里被用来判断用户设定的密码是否符合一定的强度标准。以下是对这个话题的详细解释。 首先,密码强度通常涉及到以下几个方面...

    Java 正则表达式文档

    ### Java正则表达式知识点详解 #### 一、正则表达式基础概念 正则表达式(Regular Expression)是一种在字符串操作中具有强大功能的工具,它可以用来进行字符串的匹配、搜索、替换等操作。Java提供了`java.util....

    Java正则表达式的总结和一些小例子

    正则表达式中常见的通配符包括: * `\d`:数字 * `\D`:非数字 * `\w`:单字字符(0-9,A-Z,a-z) * `\W`:非单字字符 * `\s`:空白(空格符、换行符、回车符、制表符) * `\S`:非空白 * `[]`:由方括号内的一个...

    java正则表达式,十分有用的正则表达式

    ### Java正则表达式的应用与理解 #### 一、引言 在软件开发过程中,处理字符串是一项非常常见的任务。为了高效地完成字符串的匹配、查找、替换等操作,正则表达式成为了一种不可或缺的工具。Java作为一种广泛使用...

Global site tag (gtag.js) - Google Analytics