- 浏览: 115049 次
- 性别:
- 来自: 上海
文章分类
最新评论
public class ReEX {
/** *//**
* @param args
*/
/** *//**
* @param args
*/
public static void main(String[] args){
//正则表达式
//用途:字符匹配\字符查找\字符替换
//类:
//-1-java.lang.String
//-2-java.util.regex.Pattern
//-3-java.util.regex.Matcher
//.代表一个字符,例:
//p("abc".matches(""))
//replaceAll(regex, replacement)方法
//p("a8789a".replaceAll("\\d", "-"));
//Pattern类--代表匹配字符串的模式,使用Pattern.compile(arg0)方法
//[a-z]a到z中的一个字符;[a-z]{3}a到z中的任三个字符
//Pattern类的matcher(string)方法--用模式匹配某个字符串(String实现了CharSequence字符序列的接口)
//Matcher类的matches()方法--得到结果
//Pattern p = Pattern.compile("[a-z]{3}");
//Matcher m=p.matcher("fgh");//Matcher是一个匹配器用于存储结果
//p(m.matches());
//以上代码同于p(fgh.matches([a-z]{3}));
//*零个或多个
//+一个或多个
//?零个或一个
//例子
/**//*p("a".matches("."));
p("aa".matches("aa"));
p("aaaa".matches("a*"));
p("aaaa".matches("a+"));
p("aaaa".matches("a?"));//false
p("".matches("a*"));
p("234324324123".matches("\\d{3,100}"));
p("192.168.0.aaa".matches("\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}."));//false
p("192".matches("[0-2][0-9][0-9]"));*/
//范围[]其中一个字符 ^取反 -代表一个范围 |或者 &&取交集
/**//*p("a".matches("[abc]"));
p("a".matches("[^abc]"));
p("A".matches("[a-zA-Z]"));
p("A".matches("[a-z]|[A-Z]"));
p("A".matches("[a-z[A-Z]]"));
p("R".matches("[A-Z&&[RFG]]"));*/
//认识 \s一个空白字符 \一个构成单词的字符 \d 代表一个数字
// \S上面取反 \W上面取反 \D上面取反
/**//*p(" \n\r\t".matches("\\s{4}"));
p(" ".matches("\\S"));
p("a_8".matches("\\w{3}"));
p("abc888&^".matches("[a-z]{1,3}\\d+[&^#]+"));
p("\\".matches("\\\\"));*/
//边界处理
/**//*p("hello sir".matches("^h.*"));
p("hello sir".matches(".*ir$"));
p("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
p("hellosir".matches("^h[a-z]{1,3}o\\b.*"));
p(" \n".matches("^[\\s&&[^\\n]]*\\n$"));//空白行*/
//练习
/**//*p("aaa 8888c".matches(".*\\d{4}."));
p("aaa 8888c".matches(".*\\b\\d{4}."));
p("aaa8888c".matches(".*\\d{4}."));
p("aaa8888c".matches(".*\\b\\d{4}."));*/
//email
//p("safsadfsdafsafasf@dsafsaf.com".matches("[\\w[.-]+@[\\w[.-]]]+\\.[\\w]+"));
//find();依次顺序查找子串 lookingAt();每次从开始位置开始查找子串 m.start()找到的起始位,m.end()找到的子串未位,找不到使用会报错
/**//*Pattern p=Pattern.compile("\\d{3,5}");
String s="123-23234-343-00";
Matcher m=p.matcher(s);
p(m.matches());
m.reset();//把原来吃进的子串给吐出来
p(m.find());
p(m.start()+"-"+m.end());//m.start()找到的起始位,m.end()找到的子串未位,找不到使用会报错
p(m.find());
p(m.find());
p(m.find());
p(m.lookingAt());
p(m.lookingAt());
p(m.lookingAt());
p(m.lookingAt());*/
//replacement()--字符串的替换
/**//*Pattern p=Pattern.compile("java",Pattern.CASE_INSENSITIVE);//Pattern.CASE_INSENSITIVE 略大小写
Matcher m=p.matcher("java Java JAVa IloveJAVA you hateJava");
StringBuffer buf=new StringBuffer();
int i=0;
//p(m.replaceAll("JAVA"));
while(m.find())
{
i++;
if(i%2==0)
{
m.appendReplacement(buf, "java");
}
else
{
m.appendReplacement(buf, "JAVA");
}
}
p(buf);*/
//分组
/**//*Pattern p=Pattern.compile("(\\d{3,5})([a-z]{2})");
String s="123aa-34345bb-234cc-00";
Matcher m=p.matcher(s);
while(m.find())
{
p(m.group());
//p(m.group(1));
//p(m.group(2));
}*/
//(?=a)不捕获a .{3}(?=a)为444;.{3}(?!a)为66b
/**//*Pattern p = Pattern.compile(".{3}(?!a)");
String s = "444a66b";
Matcher m = p.matcher(s);
while(m.find()) {
p(m.group());
}*/
//back refenrences向前引用(\\d\\d)\\1
//Pattern p = Pattern.compile("(\\d\\d)\\1");
//String s = "1212";
/**//*Pattern p = Pattern.compile("(\\d(\\d))\\2");
String s = "122";
Matcher m = p.matcher(s);
p(m.matches());*/
//flages的简写
//Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
//p("Java".matches("(?i)(java)")); //同上
}
public static void p(Object o){
System.out.println(o);
}
}
/** *//**
* @param args
*/
/** *//**
* @param args
*/
public static void main(String[] args){
//正则表达式
//用途:字符匹配\字符查找\字符替换
//类:
//-1-java.lang.String
//-2-java.util.regex.Pattern
//-3-java.util.regex.Matcher
//.代表一个字符,例:
//p("abc".matches(""))
//replaceAll(regex, replacement)方法
//p("a8789a".replaceAll("\\d", "-"));
//Pattern类--代表匹配字符串的模式,使用Pattern.compile(arg0)方法
//[a-z]a到z中的一个字符;[a-z]{3}a到z中的任三个字符
//Pattern类的matcher(string)方法--用模式匹配某个字符串(String实现了CharSequence字符序列的接口)
//Matcher类的matches()方法--得到结果
//Pattern p = Pattern.compile("[a-z]{3}");
//Matcher m=p.matcher("fgh");//Matcher是一个匹配器用于存储结果
//p(m.matches());
//以上代码同于p(fgh.matches([a-z]{3}));
//*零个或多个
//+一个或多个
//?零个或一个
//例子
/**//*p("a".matches("."));
p("aa".matches("aa"));
p("aaaa".matches("a*"));
p("aaaa".matches("a+"));
p("aaaa".matches("a?"));//false
p("".matches("a*"));
p("234324324123".matches("\\d{3,100}"));
p("192.168.0.aaa".matches("\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}."));//false
p("192".matches("[0-2][0-9][0-9]"));*/
//范围[]其中一个字符 ^取反 -代表一个范围 |或者 &&取交集
/**//*p("a".matches("[abc]"));
p("a".matches("[^abc]"));
p("A".matches("[a-zA-Z]"));
p("A".matches("[a-z]|[A-Z]"));
p("A".matches("[a-z[A-Z]]"));
p("R".matches("[A-Z&&[RFG]]"));*/
//认识 \s一个空白字符 \一个构成单词的字符 \d 代表一个数字
// \S上面取反 \W上面取反 \D上面取反
/**//*p(" \n\r\t".matches("\\s{4}"));
p(" ".matches("\\S"));
p("a_8".matches("\\w{3}"));
p("abc888&^".matches("[a-z]{1,3}\\d+[&^#]+"));
p("\\".matches("\\\\"));*/
//边界处理
/**//*p("hello sir".matches("^h.*"));
p("hello sir".matches(".*ir$"));
p("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
p("hellosir".matches("^h[a-z]{1,3}o\\b.*"));
p(" \n".matches("^[\\s&&[^\\n]]*\\n$"));//空白行*/
//练习
/**//*p("aaa 8888c".matches(".*\\d{4}."));
p("aaa 8888c".matches(".*\\b\\d{4}."));
p("aaa8888c".matches(".*\\d{4}."));
p("aaa8888c".matches(".*\\b\\d{4}."));*/
//p("safsadfsdafsafasf@dsafsaf.com".matches("[\\w[.-]+@[\\w[.-]]]+\\.[\\w]+"));
//find();依次顺序查找子串 lookingAt();每次从开始位置开始查找子串 m.start()找到的起始位,m.end()找到的子串未位,找不到使用会报错
/**//*Pattern p=Pattern.compile("\\d{3,5}");
String s="123-23234-343-00";
Matcher m=p.matcher(s);
p(m.matches());
m.reset();//把原来吃进的子串给吐出来
p(m.find());
p(m.start()+"-"+m.end());//m.start()找到的起始位,m.end()找到的子串未位,找不到使用会报错
p(m.find());
p(m.find());
p(m.find());
p(m.lookingAt());
p(m.lookingAt());
p(m.lookingAt());
p(m.lookingAt());*/
//replacement()--字符串的替换
/**//*Pattern p=Pattern.compile("java",Pattern.CASE_INSENSITIVE);//Pattern.CASE_INSENSITIVE 略大小写
Matcher m=p.matcher("java Java JAVa IloveJAVA you hateJava");
StringBuffer buf=new StringBuffer();
int i=0;
//p(m.replaceAll("JAVA"));
while(m.find())
{
i++;
if(i%2==0)
{
m.appendReplacement(buf, "java");
}
else
{
m.appendReplacement(buf, "JAVA");
}
}
p(buf);*/
//分组
/**//*Pattern p=Pattern.compile("(\\d{3,5})([a-z]{2})");
String s="123aa-34345bb-234cc-00";
Matcher m=p.matcher(s);
while(m.find())
{
p(m.group());
//p(m.group(1));
//p(m.group(2));
}*/
//(?=a)不捕获a .{3}(?=a)为444;.{3}(?!a)为66b
/**//*Pattern p = Pattern.compile(".{3}(?!a)");
String s = "444a66b";
Matcher m = p.matcher(s);
while(m.find()) {
p(m.group());
}*/
//back refenrences向前引用(\\d\\d)\\1
//Pattern p = Pattern.compile("(\\d\\d)\\1");
//String s = "1212";
/**//*Pattern p = Pattern.compile("(\\d(\\d))\\2");
String s = "122";
Matcher m = p.matcher(s);
p(m.matches());*/
//flages的简写
//Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
//p("Java".matches("(?i)(java)")); //同上
}
public static void p(Object o){
System.out.println(o);
}
}
class Rexg
{
public static void main(String[] args)
{
// \d{5}(-\d{4})? ?表示上面的可有可无
/**//*p("10101".matches("\\d{5}(-\\d{4})?"));
p("10101-1234".matches("\\d{5}(-\\d{4})?"));
p("abc".matches("abc?"));
p("ab".matches("abc?"));
p("abc".matches("a(bc)?"));
p("a".matches("a(bc)?"));*/
//子匹配 用()括起 \1表示每一个()中的子匹配
//1221,3553可表示为(\d)(\d)\2\1
//11111,22222可表示为(\d)\1{4}
//作用:1有效性验证 2 替换内容 3查找某一类形的文本
}
public static void p(Object obj)
{
System.out.println(obj);
}
}
{
public static void main(String[] args)
{
// \d{5}(-\d{4})? ?表示上面的可有可无
/**//*p("10101".matches("\\d{5}(-\\d{4})?"));
p("10101-1234".matches("\\d{5}(-\\d{4})?"));
p("abc".matches("abc?"));
p("ab".matches("abc?"));
p("abc".matches("a(bc)?"));
p("a".matches("a(bc)?"));*/
//子匹配 用()括起 \1表示每一个()中的子匹配
//1221,3553可表示为(\d)(\d)\2\1
//11111,22222可表示为(\d)\1{4}
//作用:1有效性验证 2 替换内容 3查找某一类形的文本
}
public static void p(Object obj)
{
System.out.println(obj);
}
}
发表评论
-
cookie
2009-11-03 10:25 624//servlet//生成cookie对名象java.uti ... -
junit
2009-11-03 17:44 673junit简介: * 创建test目录与src同级,同时建立 ... -
JAVA语言读取MAC地址(转)
2009-11-06 17:21 740import java.io.*; public cla ... -
网站首页静态化方案
2009-11-06 17:52 6751 Freemarker网站静态化的实现(转) 首页: ... -
Apache BeanUtils
2009-11-29 21:17 567BeanUtils.copyProperties 与 Pr ... -
IO流
2009-11-29 21:18 5901 输入/输出流 字节流 字符 ... -
Map-iterator
2009-11-29 21:20 718Set temp=new HashSet();Set e ... -
日期Format
2009-11-29 21:26 708日期格式化 Date currentTime = new Da ... -
判断是否属于此类型
2009-11-29 21:27 495event.getValue() instanceof Act ... -
日期处理
2009-11-29 21:28 557Calendar g=Calendar.getInsta ... -
生成jar包
2009-11-29 21:29 475生成jar包 jar -cvf test.jar *.* *. ... -
同步锁
2009-11-29 21:30 522public void synchronized getall ... -
序列化与反序列化
2009-11-29 21:31 608序列化是把一个对象的状态写入一个字节流的过程,它执行RMI,R ... -
java mail
2009-11-29 21:33 613JavaMail下载与安装 http://java.sun.c ... -
文件上传组件
2009-11-29 21:34 494文件上传组件 1 Apache的Commons FileUpl ... -
pager-taglib的安装和使用
2009-11-29 21:34 4721、拷贝pager-taglib.jar包 2、在JSP页面中 ... -
文件下载
2009-11-29 21:35 454文件下载代码(2008-02-26 2 ... -
字符串日期转换
2009-12-03 17:09 694java开发时往往需要做字符串和日期的转换 主要用到:java ... -
java反编译工具jad
2009-12-13 22:40 607http://www.kpdus.com/jad.html ... -
java优化编程-字符串驻留
2010-01-20 15:26 721字符串比较时,采用.intern()方法将字符串添加到驻留池中 ...
相关推荐
本文件“正则基础之——NFA引擎匹配原理.rar”将深入探讨NFA的工作机制。 首先,我们需要理解NFA的基本概念。NFA是一种有向图,每个节点代表一个状态,边则表示状态间的转换。在NFA中,一个输入字符可以引发多个...
在这个"正则基础之——小数点"的主题中,我们将深入探讨小数点在正则表达式中的应用。 1. 小数点(`.`)的元字符含义: 在正则表达式中,小数点(`.`)是一个元字符,它代表任意单个字符,除了换行符。这意味着`.`...
本文件“正则基础之——捕获组(capture group)”将深入讲解正则表达式中的一个重要概念——捕获组,这是理解和运用正则表达式不可或缺的一部分。 捕获组是正则表达式中的一种机制,它允许我们将一个模式分隔成多...
正则基础之——NFA引擎匹配原理 在正则表达式中,了解引擎匹配原理是非常重要的。就像音乐家一样,一个人可以演奏出动听的乐曲,但是如果不知道如何去改变音符的组合,乐曲就不会变得更动听。同样,在使用正则...
千锋Web前端教程_78_正则基础语法
千锋Web前端教程_79_正则基础语法
千锋Web前端教程_80_正则基础语法
千锋Web前端教程_81_正则基础语法
正则表达式是一种强大的文本匹配工具,广泛应用于编程语言和各种文本处理场景中。正则表达式通过使用一系列特殊字符,即元字符,来定义复杂的搜索模式。这些元字符具有特殊的意义,如表示重复次数、选择、分组等。...
在正则表达式的世界里,贪婪与非贪婪模式是两种重要的匹配策略,它们决定了正则表达式在查找匹配时的行为。这两个概念对于任何想要深入理解正则表达式的开发者来说至关重要。 首先,我们来理解一下“贪婪”模式。...
javastript正则表达式基础 javastript正则表达式基础 javastript正则表达式基础
shell脚本-基础正则和扩展正则 基础正则元字符功能案例结果: 1. `.` : 匹配单个字符 - 例如:`/l.ve/` 可以匹配 `love`、`live` 等字符串 2. `[ ]` : 匹配括号内的任意单个字符 - 例如:`/l[Oo]ve/` 可以匹配 ...
vba正则表达式基础知识介绍,由浅入深,实例讲解
Python正则表达式基础是学习如何在Python中应用正则表达式的入门指南。正则表达式,或称为REs、regexes、regexpatterns,是能够嵌入到Python中的一个精细、高度专业化的程序语言。通过re模块,程序员得以使用这一...
一些细节 对于使用传统NFA引擎的大多数语言和工具,如Java、.NET来说,“.”的匹配范围是匹配除了换行符“\n”以外的任意一个字符。 但是对于javascript来说有些特殊,由于各浏览器的解析引擎不同,“.”的匹配范围...
下面,我们将详细分析在jQuery中可能用到的几种正则表达式的基础概念和应用。 首先,我们来看一个具体的正则表达式示例: ```javascript quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/; ``` 这个正则...
【Groovy正则表达式基础1】 Groovy是一种基于Java平台的动态编程语言,它扩展了Java的功能,包括对正则表达式的处理。在Groovy中,正则表达式是通过`~`运算符或者使用斜杠(`/`)来定义的。这种特性使得Groovy在处理...
以下是对正则表达式基础知识的详细解释: 1. **基础匹配**: - **基础匹配**:最简单的正则表达式就是你要匹配的文本本身,如"cat",可以匹配含有"cat"的字符串。 2. **句点符号(.)**: - **句点符号**:"....