`
chendang1314
  • 浏览: 102193 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

正则表达式初步

    博客分类:
  • java
阅读更多

1          为什么用正则表达式?

String已经有了这个 String s.matchers(reg);String s.replaceallreg,“”)

使用patternmatcher两个类的原因在于上面的字符串处理能力有限,丰富了其它的很多的方法,提高处理的能力。其次是提高程序代码执行的效率,先把pattern编译。

2          正则表达式基础

基本的正则表达式的:

 

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Test {

 

       public static void main(String[] args) {

              //简单认识正则表达式的概念

              /*

              p("abc".matches("..."));

              p("a8729a".replaceAll("\\d", "-"));

              Pattern p = Pattern.compile("[a-z]{3}");

              Matcher m = p.matcher("fgh");

              p(m.matches());

              p("fgha".matches("[a-z]{3}"));

              */

             

              //初步认识. * + ?

              /*

              p("a".matches("."));

              p("aa".matches("aa"));

              p("aaaa".matches("a*"));

              p("aaaa".matches("a+"));

              p("".matches("a*"));

              p("aaaa".matches("a?"));

              p("".matches("a?"));

              p("a".matches("a?"));

              p("214523145234532".matches("\\d{3,100}"));

              p("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));

              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 \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("\\\\"));

              */

             

              //POSIX Style

              //p("a".matches("\\p{Lower}"));

             

              //boundary

              //^在【】中表示非的意思,在外面表示开头的意思

              /*

              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.*"));

              //whilte lines

              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("asdfasdfsafsf@dsdfsdf.com".matches("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"));

             

              //matches find lookingAt

              //matches是找整个字符串,find是找字串,lookingAt每次从头开始找

              //matchesfind一起用可能会产生冲突,matches之后find接着从matches不匹配//的位置开始找,因此要用reset一下

              /*

              Pattern p = Pattern.compile("\\d{3,5}");

              String s = "123-34345-234-00";

              Matcher m = p.matcher(s);

              p(m.matches());

              m.reset();

              p(m.find());

              p(m.start() + "-" + m.end());

              p(m.find());

              p(m.start() + "-" + m.end());

              p(m.find());

              p(m.start() + "-" + m.end());//用的时候确保能够找的出来,不然用这个方法会报错

              p(m.find());

              //p(m.start() + "-" + m.end());

              p(m.lookingAt());

              p(m.lookingAt());

              p(m.lookingAt());

              */

             

              //replacement

              /*

              Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);

              Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");

              StringBuffer buf = new StringBuffer();

              int i=0;

              while(m.find()) {

                     i++;

                     if(i%2 == 0) {

                            m.appendReplacement(buf, "java");

                     } else {

                            m.appendReplacement(buf, "JAVA");

                     }

              }

              m.appendTail(buf);

              p(buf);

              */

             

              //group

              /*

              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());

              }

              */

             

              //qulifiers

              /*

              Pattern p = Pattern.compile(".{3,10}+[0-9]");

              String s = "aaaa5bbbb68";

              Matcher m = p.matcher(s);

              if(m.find())

                     p(m.start() + "-" + m.end());

              else

                     p("not match!");

              */

             

              //non-capturing groups

              /*

              Pattern p = Pattern.compile(".{3}(?=a)");

              String s = "444a66b";

              Matcher m = p.matcher(s);

              while(m.find()) {

                     p(m.group());

              }

              */

             

              //back refenrences

              /*

              Pattern p = Pattern.compile("(\\d(\\d))\\2");

              String s = "122";

              Matcher m = p.matcher(s);

              p(m.matches());

              */

             

              //flags的简写

              //Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);

              p("Java".matches("(?i)(java)"));

       }

      

       public static void p(Object o) {

              System.out.println(o);

       }

 

}

分享到:
评论

相关推荐

    JAVA 正则表达式 教程

    在学习完该教程后,应该对正则表达式有了初步的了解,并能熟练地运用 java.util.regex 包中的关于正则表达式的类库,为今后学习更高级的正则表达式技术奠定良好的基础。 教程中所有的源代码都在 src 目录下,可以...

    java正则表达式学习

    java正则表达式,初步认识正则表达式的应用。文档教程

    算法编程基础--第02讲-正则表达式初步_分散字符串

    分散字符串 请把下列字符串分散为数字和字符构成的串 String s1 = "abc1234xyz667kkmd764tttt"; 串由字母和数字间隔构成,要分离出所有的字母段和数字段,即: abc 1234 xyz 667 kkmd ...tttt

    TPerlRegEx[Delphi正则表达式]

    TPerlRegEx[Delphi正则表达式] 安装: 将下载的文件解压到一个路径下,打开Delphi,执行[Component]-[Install Component],选择[PerlRegEx.pas]进行安装 初步使用: 参照万一的博客中的例子,发现新版本中有一些...

    正则表达式30分钟入门教程。轻松简单易学

    现在WEB 2.0开发 很多东西需要用户验证,而正则表达式正好弥补了 验证的需求 这里的教程让大家很轻松的学习正则表达式 让大家对正则表达式有个初步的了解

    正则表达式的N种应用实例

    像正则表达式的一些应用,如用来判断处理字符串,像身份证号码,邮箱号等等约束,里面有详细的说明和使用实例,很适合初步接触正则表达式的人来学习

    Linux shell-正则表达式基础-思维导图-

    一张图了解初步正则表达式,适合小白,通俗易懂,结构清晰

    正则表达式

    正则表达式初步 学习Perl的好帮手

    正则表达式工具.rar

    正则表达式辅助工具包,校验、生成、推导 比较简单(略过) 首先,我们先对RegexBuddyg 产生一个整体的初步的认识,而不是设法解释所有的东西。RegexBuddyg是相当易懂的容易的,所以我想经过简单大家应该能够基本...

    关于正则表达式入门的文档

    介绍了一些有关正则表达式的基础知识,如果想对正则表达式有个初步的了解,可以看一下。

    正则表达式30分钟入门教程.mht

    关于正则表达式的入门教材!看完之后可以初步运用正则表达式!也可作为参考资料查询!

    正则表达式入门经典教程

    讲的通俗易懂,真的是一天就对正则表达式有一个比较初步的认识。可以毫不夸张的说,我原来都没听说过正则表达式,就一天,能够写出很好用的的式子啦!

    (正则表达式)boost的使用

    自己整理的正则表达式的一些初步使用和注意规范

    正则表达式30分钟入门教程(详细)

    正则表达式30分钟入门教程(详细),介绍了正则的基本含义和入门初步知识

    正则表达式的讲解及应用

    正则表达式的详细讲解及应用。由最初的初步认识到应用场景和应用规则!

    正则表达式(入门)

    简单入门级别,一看就能初步了解正则表达式的知识点。 具体的自己看吧! 本文档是自己做得内容是摘抄于网奇网站。

    JS 正则表达式用法介绍

    正则表达式使用详解 ...在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。 正则表达式的形式一般如下: /love/其中位于“/”定界符之间的部分就是将要在目

    js 常用正则表达式表单验证代码

    正则表达式使用详解 ...在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。 正则表达式的形式一般如下: /love/其中位于“/”定界符之间的部分就是将要在目

    python全套学习内容,包括python基础语法教程、字符串处理、函数、列表操作、文件处理、字典、面向对象、正则表达式等。

    python全套学习内容,包括python基础语法教程、字符串处理、函数、列表操作、文件处理、字典、面向对象、正则表达式等。 使用者:python初级学者,适合初步入手python python基本内容全覆盖

    学习php中的正则表达式

    语法格式:位于定界符”/”之间。 较为常用的元字符包括: “+”, “*”,以及 “?... 在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。  \s:用于匹配单个

Global site tag (gtag.js) - Google Analytics