1 . 使用java自带的类
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class T {
public static void main(String[] args) {
String str = "<html>adfad</html><html>chen</html>";
String regex = "<html>([^<]+)</html>";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find())
System.out.println(matcher.toMatchResult().group(1));
/*if (matcher.matches())
System.out.println(matcher.toMatchResult().group(1));*/
}
}
注意:matcher.find() 能够找出下一个匹配的文本,它查找与该模式匹配的输入序列的下一个子序列。
matcher.matches() 尝试将整个区域与模式匹配,如果字符串中包含多个匹配文本时,它一个都找不到。
2. 使用 org.apache.oro.text.regex.Perl5Matcher
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.oro.text.regex.MalformedPatternException;
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.PatternMatcherInput;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
import au.id.jericho.lib.html.Source;
public class ParseTime {
public static void main(String[] args) throws MalformedURLException, IOException, MalformedPatternException {
String regex = "(\\d{4}[年|-]\\d{1,2}[月|-]\\d{1,2}[日]?)";
String str = new Source(new URL("file:/home/serverc/test/yw.shtml")).toString();
PatternCompiler compiler = new Perl5Compiler();
PatternMatcher matcher = new Perl5Matcher();
PatternMatcherInput input = new PatternMatcherInput(str);
Pattern pattern = compiler.compile(regex);
if(matcher.contains(input, pattern)){ //将if改成while就会找出所有匹配文本
System.out.println(matcher.getMatch().group(1));
}
}
}
注意:matcher.contains(input, pattern)相当于java中的matcher.find()
3. 匹配<x>..</x> 模式
String s = "<title>The</title>";
String regex = "<\\b(\\w+)>\\w*</\\1\\b>";
System.out.println(s.matches(regex));
4. Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); //设置对大小写不敏感(即不区分大小写)
Pattern p = Pattern.compile(regex,Pattern); //区分大小写
5. 例子
/**
* 该方法是判断一个字符串是不是一个合法的E-Mail地址
* 使用了正则表达式的方法
* 如果符合E-mail的格式,则返回 true, 否则返回 false ;
* E-mail 正确的格式是 XXX@XXX.XXX(.XXX) ;
* @param checkString 要判断的是否符合E-mail 格式的字符串
* @return 返回判断的结果,如果符合,返回 true, 否则返回 false ;
*/
public static boolean isEmail(String checkString){
//String regString="([a-zA-Z_0-9]+)@([a-zA-Z0-9]+).*(\\.com|\\.cn|\\.net)";
String regString="([a-zA-Z_0-9]+)@([a-zA-Z0-9]+)\\.([a-zA-Z]+)";
//String regString="\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.[a-zA-Z]+";
Pattern pattern=Pattern.compile(regString);
Matcher matcher=pattern.matcher(checkString);
return matcher.find();
}
/**
* 该方法是判断一个字符串是不是一个合法的URL地址
* 使用了正则表达式的方法
* 如果符合URL的格式,则返回 true, 否则返回 false ;
* URL 正确的格式是 http://XXX.XXX(XXX/XXX%&=XXX) ;
* @param checkString 要判断的是否符合 URL 格式的字符串
* @return 返回判断的结果,如果符合,返回 true, 否则返回 false ;
*/
public static boolean isURL(String checkString){
String regString="http://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";
Pattern pattern=Pattern.compile(regString);
Matcher matcher=pattern.matcher(checkString);
return matcher.find();
}
分享到:
相关推荐
虽然正则表达式提供了强大的查询能力,但在实际应用中也需要注意以下几点: - **性能考量**:某些数据库系统中,使用正则表达式可能会导致性能下降,特别是在大型数据集上。因此,在设计查询时应考虑性能影响。 - **...
在编程世界中,正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助开发者高效地进行字符串的匹配、查找、替换等操作。在Delphi 2010这个经典的集成开发环境中,有一款专门针对正则表达式的插件,...
本文将详细介绍几种常用的日期正则表达式及其原理。 #### 二、简单日期格式验证 ##### 1. YYYY/MM/DD 格式的日期验证 最基础的日期格式是`YYYY/MM/DD`,这种格式下日期的正则表达式为: ``` ^\d{4}(\-|\/|\.)\d{...
正则表达式是一种强大的文本处理工具,能够帮助我们在文本数据中执行复杂的查找、替换和提取操作。其主要应用领域包括文本搜索、数据验证和数据清洗等。正则表达式的语法由一系列用于描述字符串模式的字符和元字符...
正则表达式是一种特殊的文本字符串,用于描述复杂或重复的文本模式。它们在搜索、替换、数据提取等任务中非常有用。在Qt中,QRegExp类提供了对正则表达式的支持,包括构造、匹配、替换等功能。 1. **QRegExp构造**...
该正则表达式 `/^([A-Za-z0-9])+$/` 可以被细分为几个关键部分进行解读: 1. **`/`**:正则表达式的开始与结束符号。 2. **`^`**:表示匹配字符串的起始位置。 3. **`([A-Za-z0-9])`**: - **`[A-Za-z]`**:表示...
总的来说,正则表达式是程序员处理文本的强大工具,理解并掌握其语法和使用方法对于提高文本处理能力至关重要。通过不断实践和学习,你可以利用正则表达式解决各种文本处理问题,无论是在Java还是其他支持正则表达式...
在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...
正则表达式(Regular Expression)是一种强大的工具,用于在字符串中匹配特定模式,它在这里被用来判断用户设定的密码是否符合一定的强度标准。以下是对这个话题的详细解释。 首先,密码强度通常涉及到以下几个方面...
正则表达式(Regular Expression),简称regex或regexp,是一种用于描述文本模式的强大工具。它可以帮助我们在文本中进行精确匹配、查找以及替换操作。正则表达式的概念最早可以追溯到20世纪50年代,但真正流行起来...
本文旨在分享作者在学习正则表达式过程中的心得体验,并重点介绍了几种常见编程语言(Python、C#、PHP)及文本编辑器(Notepad++)中正则表达式的使用技巧。此外,还特别对比了不同语言之间正则表达式的异同之处。 ...
在IT行业中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。在本场景中,我们关注的是如何使用正则表达式来验证金额格式。金额格式通常要求精确到小数点后两位,并且可能...
为了构建这个“万能”的日期正则表达式,我们需要关注以下几个关键部分: ##### 1. 年份 (yyyy 或 yy) - **四位数年份**:`(\d{4})`,表示任何四位数字。 - **两位数年份**:`(\d{2})`,表示任何两位数字。 ##### ...
另一种是使用字符组或多选分支结构,如方括号([])、竖线(|)等,来列举元素可能出现的几种形态。例如,匹配双引号字符串时,双引号是必须出现的元素,而双引号内的内容则是可能出现的元素,可以使用星号(*)来表示这...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和查找、替换等操作。在编程和数据处理领域,正则表达式是不可或缺的一部分,尤其在处理大量文本数据时,它的灵活性和效率尤为突出。为了更好地理解...
正则表达式的第一个实用应用程序是 Unix 中的 qed 编辑器,从那时起,正则表达式经过几个时期的发展,现在的标准已经被 ISO 批准和被 Open Group 组织认定。 2. 语言?NO! 正则表达式并非一门专用语言,而是一种...
在这个`ParseDMS`方法中,我们首先创建了一个正则表达式实例,然后使用`Match`方法尝试找到匹配的度分秒字符串。如果匹配成功,我们就提取出度、分和秒,将它们转换为浮点数并计算总度数。如果输入的字符串格式不...