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();
}
分享到:
相关推荐
正则表达式,包括手机、电话、email、邮编的轻松验证
正则表达式总结文档正则表达式总结文档正则表达式总结文档正则表达式总结文档正则表达式总结文档
使用正则表达式匹配文本... 38 向更实用的程序前进... 40 成功匹配的副作用... 40 错综复杂的正则表达式... 43 暂停片刻... 49 使用正则表达式修改文本... 50 例子:公函生成程序... 50 举例:修整股票价格....
个正则表达式是个特定格式化模式可以用来找出个串在另个串中使用情况几个编程语言包括Visual Basic,Perl,JavaScript和PHP都支持正则表达式希望在这篇入门指导结束Mitchell(作者自己)可以让你在PHP中 能应用些基本...
关于几种类型校验码的正则表达式:手机号码、登录名、用户密码等。
30种正则表达式,选择Email和IPv4类型的验证方式,直接复制粘贴,永久保存使用 先看看几个举例: https://blog.csdn.net/qq_50767141/article/details/123838530 数字表达式:^[0-9]*$ Email地址表达式:^\w+([-+....
《正则表达式经典实例》讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报...
按闰年的定义可知,日期可以有几种分类方法。 3.1.1 根据天数是否与年份有关划分为两类 与年份无关的一类中,根据每月天数的不同,又可细分为两类 1、3、5、7、8、10、12月为1-31日 4、6、9、11月为1-30日 与...
正则表达式的各个字符的意义及其使用方法,另外还有几种符号的等价用法,几种正则表达式的几种应用实例。
在写输入用到input的时候,经常出现以下几种情况: 只能输入某。栗子:只能输入数字,只能输入字母(大写,小写)只能输入某固定格式。栗子:只能输入金额,只能输入小数且最多保留2位不能输入某。栗子:不能输入...
关于身份证号,出生日期等的js正则表达式验证 有几种方式
C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。 (2)打开一个C++源文件,打印出所有以上的记号。 (3)要求应用程序应为Windows界面。 ...
正则表达式中使用了特殊符号。下面我就将各种符号以及其意义和用法简单的介绍一下(说明:”X以上包括X”): / 表示在其后的文字是特殊符号。例:”n”和”n”是一致的。”/n”和换行符是一致的。 ^ 和输入的开始...
目录 · · · · · ·第1章 正则表达式入门1.1 正则表达式的用途1.2 如何使用正则表达式1.3 什么是正则表达式1.4 使用正则表达式1.5 在继续学习之前1.6 小结第2章 匹配单个字符2.1 匹配纯文本2.2 匹配任意字符2.3 ...
正则表达式测试工具,适用于好几种语言,比如.net,java,perl,ruby等
已经有多篇关于正则表达式介绍的文章,随着我们越来越多使用正则表达式,想对性能做优化、减少我们正则表达式书写匹配Bug。我们不得不进一步深入了解正则表达式执行过程了。下面我们一起学习,分析下正则表达式执行...
正则表达式(Regular Expression,通常简写为regex、regexp或RE)是对字符串操作的一种逻辑公式,它使用一系列预定义的特定字符及其组合来构成“规则字符串”,从而实现对字符串的过滤和匹配逻辑。 正则表达式的...
正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列。拥有强大的字符搜索功能。也非常方便的搜索过滤出我们想要的内容。
主要介绍了Java使用正则表达式验证用户名和密码的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下