java--正则表达式初步学习

正则表达式是一种字符处理工具,可以对字符串进行查找,提取,分割,替换等操作。正则表达式可以理解为一个用于匹配字符串的模板。使用java中的正则表达式时,我们预先定义一个规则,然后看字符串是否符合这个规则。当然我们定义规则时需要借助一些特殊的符号,就是正则表达式中的特殊字符。

java中使用正则有两种方式,1是通过String类直接调用,2是通过Java中的Pattern和Matcher类来使用。

更详细的使用方法见下面的代码和注释。

代码如下:

package lkl1;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class 正则表达式 {

    public static void main(String[] args){

        //通过字符串直接调用正则表达式
          String str = "test java";

          //直接通过字符串形式调用正则表达替换时,并不会改变原字符串的值,而是
          //另外有别的返回值
          String str1 = str.replaceFirst("\\w*", "哈哈");
          System.out.println(str1);
          System.out.println(str.replaceAll("\\w+", "呵呵"));

          //判断该字符串是否匹配指定的正则表达式(整串匹配)
          if(str.matches("\\w")){
              System.out.println("该字符串中的字母都为单词字符");
          }
          else{
              System.out.println("该字符串中含有非单词字符");
          }

          //指定分隔符将该字符串分解为多个子串
          String s[] = str.split(" ");
          for(String ss:s){
              System.out.println(ss);
          }

          //通过java中的Pattern和Matcher类来使用正则表达式
          String st = "java is very easy";
          Pattern p = Pattern.compile("\\w+"); //指定正则表达式模式
          Matcher m = p.matcher(st);  //指定使用正则表达式的字符串

          //find();返回字符串中是否有与Pattern匹配的子串
          //在一个字符串中find()是依次从前往后查找的各个子串的
          //可以传入参数i,表示从第i个位置开始匹配
          boolean bl = m.find();
          System.out.println(bl);
          //返回上次与Pattern匹配的子串  

          //start();返回上次与Pattern匹配子串的起始位置
          //end();返回上次与Pattern匹配子串的终止位置
          while(m.find()){
              System.out.print(m.group()+"\t");
              System.out.println("子串的起始位置是: "+m.start()+" 终止位置是: "+m.end());
          }

          //lookingAt()返回目标字符串前面部分是否与Pattern匹配
          System.out.println("字符串前面部分是否和Pattern匹配: "+m.lookingAt());

          //整个字符串是否与Pattern匹配
          System.out.println("整个字符串是否与Pattern匹配: "+m.matches());

          //reset(),将现有的matcher用于一个新的字符串
           m.reset("lkl");

          //综合运用:检查邮箱格式是否正确
           String[] mails = {
                   "[email protected]",
                    "[email protected]",
                    "[email protected]",
                    "[email protected]"
           };
           Pattern p1 = Pattern.compile("\\w{3,20}@\\w+\\.(com|gov|org)");
           //其实也可以直接:"[email protected]".matcher("\\w{3,20}@\\w+\\.(com|gov|org)")
           Matcher m1 = null;
           for(String mail:mails){
               if(m1==null){
                   m1 = p1.matcher(mail);
               }
               else{
                   m1 = m1.reset(mail);
               }
               if(!m1.matches()){
                   System.out.println("邮箱: "+mail+" 命名不合法");
               }
           }
         }
}
时间: 2024-11-13 10:17:10

java--正则表达式初步学习的相关文章

java正则表达式的学习总结

什么是正则表达式? 正则表达式(Regular Expression)就是用某种模式去匹配一类字符串的公式.(主要操作字符串) 解决什么问题? 如你要在一篇文章中查找第一个字是“罗”最后一个字是“浩”的三个字的姓名,即“罗*浩”:那么“罗*浩”就是公式,也称作模式(Pattern),这篇文章就是要匹配的串(或叫文本text).再如,你要检查输入的一个字符串是否是126邮箱的格式,你得制定一个规则去查检,这种规则就是正则表达式. 其实就是定义一个规则,用来判断,查找符合此规则的字符串.简化了编程.

JAVA 初步学习一

Java 是由Sun Microsystems公司于1995年5月推出的Java面向对象的程序设计语言(简称Java语言)和Java平台的总称.Java两层含义:一.开发语言 二.开发平台 一.Java历史: 1991年Sun公司的James Gosling等人开始开发名称为Oak的语言.主要用于像有线电视转换盒这类消费设备. Sung公司的人后来发现Oak是一种已有的计算机语言的名字,于是,将其改为Java(太平洋岛屿爪哇盛产的一种味道非常美妙的咖啡) 1995年5月,Sun公司对外正式宣布了

java socket初步学习一 ( tcp)

Java socket通信程序: 第一版本: 实现功能: 服务器地址:127.0.0.1  端口:5050 客户机:端口5050 客户端发送字符:“t” 服务器接收到该字符并回复:“r” 流程: 建立java工程,默认在workspace中,udpServer为工程名,此时work/udpServer文件夹 建立类名为server,则此时服务器代码为: package udpServer; import java.io.*; import java.net.*; public class ser

java回调初步学习

/** * 这是一个回调接口 * @author xiaanming * */public interface CallBack { /** * 这个是小李知道答案时要调用的函数告诉小王,也就是回调函数 * @param result 是答案 */ public void solve(String result);} /** * 这个是小王 * @author xiaanming * 实现了一个回调接口CallBack,相当于----->背景一 */public class Wang imple

Java深度历险(三) Maven初步学习

这几天接触这个词,很多遍了,只是浅显的体会到它在GXPT中的好处,功能之强大,又通过网络查询了资料进一步的认识学习了,和大家分享. Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 在gxpt中的体现 1. 父子关系 一个多模块项目通过一个父POM 引用一个或多个子模块来定义. a. 在父目录中分别创建子项目 b. 父项目,通过以下配置,将子项目关联: 如下: <span style="font-size:18px;"

JavaSE学习笔记21:Java正则表达式

Java正则表达式   1.正则表达式(特点) 正则表达式,顾名思义,就是符合一定规则的表达式.作用是专门用于操作字符串,虽说String类中已经有了很多操作字符串的方法,但是它们的功能单一,操作起来还麻烦,正则弥补了它们的补足. 下面我们通过一个小例子来感受一下区别: 需求:对QQ号码进行校验,要求:5~15位,0不能开头,只能是数字. (1)常规的做法: class CheckQQ { public static void main(String[] args) { String qq="3

java正则表达式及java.util.regex包的学习

参考http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html package sunfa.lx; import java.util.Arrays; import java.util.regex.Pattern; /** * java.util.regex包负责对字符序列进行正则表达式匹配 * Pattern负责编译 * Matcher负责匹配 * --------------- * 正

java初步学习hello word

java初步学习hello word 发表于 2012-08-16 08:05:12 by 月小升 1.下载 java JDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装 JDK 3.打开命令行 输入 java 按下 Enter 你会看到 Usage: java [-options] class [args...] (to execute a class) or java [-options] -j

Javascript正则表达式的初步学习

1 <html> 2 <head> 3 <meta charset="utf-8"> 4 <title>正则表达式的学习</title> 5 </head> 6 <body> 7 8 <script language="javascript"> 9 //创建正则表达式,RegExp是一个对象,test是一个方法 10 //第一个参数是正则表达式的文本内容 11 //第二个

[转载]java正则表达式

转载自:http://butter.iteye.com/blog/1189600 1.正则表达式的知识要点1.正则表达式是什么?正则表达式是一种可以用于模式匹配和替换的强有力的工具.2.正则表达式的优点?更少的代码,更高的效率.3.正则表达式如何使用?在下面的教程中我们将学习到正则表达式的用法.4.正则表达式的缺点?需要花一定的时间学习,这个时间由个人决定,一天或者更久一些.2.正则表达式的各种符号及其含义常用的符号 . 表示任意一个字符\s 空格字符(空格键, tab, 换行, 换页, 回车)