精华内容
下载资源
问答
  • 正则表达式是对字符串操作逻辑公式,就是用事先定义好一些特定字符、及这些特定字符组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串过滤逻辑。给定一个正则表达式和另一个字符串...

    正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。本文我们来看regex的posix标准 gnu扩展以及兼容性。

    正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

    给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

    1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);

    2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

    正则表达式的特点是:

    1. 灵活性、逻辑性和功能性非常的强;

    2. 可以迅速地用极简单的方式达到字符串的复杂控制。

    3. 对于刚接触的人来说,比较晦涩难懂。

    由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。

    regex(Regular Expression)的posix标准是unix平台共同遵守的,而gnu对regex做了大量扩展,使regex更好用,但不是所有的平台都支持gnu扩展。

    Mac OS X平台就只支持posix标准而不支持gnu扩展,因此使用gnu扩展的脚本在Mac OS X平台上运行时就会遇到兼容性问题。

    比如匹配所有空白字符的\s就是gnu扩展,如果要在Mac OS X上匹配所有空白字符要使用[[:space:]]。

    下面是几个常见的GNU扩展对应的posix表达:

    \w – [[:alnum:]_]

    \W – [^[:alnum:]_]

    \s – [[:space:]]

    \S – [^[:space:]]

    展开全文
  • 1、什么是正则表达式?...Java.util.regex主要包含以下三类: pattern类: pattern 对象是一个正则表达式编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其...

    1、什么是正则表达式?

    正则表达式(regular expression)是根据字符串集合内每个字符串共享的共同特性来描述字符串集合的一种途径。正则表达式可以用于搜索、编辑或者处理文本和数据。
    Java.util.regex主要包含以下三类:

    • pattern类:
      pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
    • Matcher类:
      Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
    • PatternSyntaxException
      PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

      2、正则表达式主要用于对password、phone、Email等的合法性检查以下就是其简单应用:

    对应的类:

    package cn.lovepi.chapter07.action;
    import com.opensymphony.xwork2.ActionSupport;
    import java.util.regex.Pattern;
    /**
    * 
    * 数据校验示例——硬编码格式
    */
    public class ValidateAction extends ActionSupport{
        private String username;
        private String password;
        private String repassword;
        private String email;
        private String phonenumber;
        private int age;
        @Override
        public String execute() throws Exception {
            return SUCCESS;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public String getRepassword() {
            return repassword;
        }
        public void setRepassword(String repassword) {
            this.repassword = repassword;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getPhonenumber() {
            return phonenumber;
        }
        public void setPhonenumber(String phonenumber) {
            this.phonenumber = phonenumber;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }

    类对应的校验方法:

    public void validateExecute(){
            if (null==username || username.length()<6 ||username.length()>10) {
                this.addFieldError("username", "username has error");
            }
            if (null==password || password.length()<6||password.length()>10) {
                this.addFieldError("password", "password has error");
            }else if (null==repassword || repassword.length()<6||repassword.length()>10) {
                this.addFieldError("repassword", "repassword has error");
            }else if(!password.equals(repassword)){
                this.addFieldError("password", "tow password is not be same");
            }
            if (age<=0 ||age>150) {
                this.addFieldError("age", "年龄不符合人类规范!");
            }
            //验证邮箱! 123dsaw@163.com
            //只允许a-z A-Z 1-9 -_
            //正则表达式---专门用于复杂字符判断的技术
            Pattern p = Pattern.compile("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\\.([a-zA-Z0-9_-])+)+$");
            if (null==email || !p.matcher(email).matches()) {
                this.addFieldError("email", "邮箱验证失败!");
            }
            Pattern p1=Pattern.compile("^(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8})|(0\\d{2}-\\d{7,8})|(0\\d{3}-\\d{7,8})$");
            if (null==phonenumber || !p1.matcher(phonenumber).matches()) {
                this.addFieldError("phonenumber", "电话格式不正确!");
                this.addActionError("action级别错误!");
            }
        }

    参考链接:

    https://blog.csdn.net/icarus_wang/article/details/53997632?locationNum=9&fps=1

    https://383984216-qq-com.iteye.com/blog/1396595

    转载于:https://www.cnblogs.com/yuanchao-blog/p/10668107.html

    展开全文
  • java 正则表达式高级篇,介绍四常用处理方式:匹配、分割、替代、获取,具体内容如下package test;import java.util.regex.Matcher;import java.util.regex.Pattern;/*** 正则表达式* 正则表达式 用法主要是4...

    java 正则表达式高级篇,介绍四种常用的处理方式:匹配、分割、替代、获取,具体内容如下

    package test;

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    /**

    * 正则表达式

    * 正则表达式 的用法主要是4种方面的使用

    * 匹配,分割,替换,获取.

    * 用一些简单的符号来代表代码的操作

    * @author cyc

    *

    */

    public class Rex {

    public static void main(String[] args) {

    //针对字符串处理

    Rex reg = new Rex();

    //校验qq的reg正则表达式

    //这里的w 是指的是[a-zA-Z0-9],还有一个重要的是?,*.+这三个分别

    //?表示出现1次或者1次都没有,

    //+表示出现1次或者n次,

    //*表示出现0次或者n次,

    //还有些特殊的写法X{n}恰好n次X{n,}至少n次,X{n,m}n次到m次,

    String mathReg = "[1-9]\d{4,19}";

    String divisionReg = "(.)\1+";

    //\b 是指的边界值

    String getStringReg = "\b\w{3}\b";

    //字符串匹配(首位是除0 的字符串)

    reg.getMatch("739295732",mathReg);

    reg.getMatch("039295732",mathReg);

    //字符串的替换

    //去除叠词

    reg.getReplace("12111123ASDASDAAADDD",divisionReg,"$1");

    //字符串的分割

    //切割叠词,重复的

    //这里要知道一个组的概念(.)\1第二个和第一个至相同

    reg.getDivision("aadddddasdasdasaaaaaassssfq",divisionReg);

    //字符串的获取

    //现在获取三个字符串取出

    reg.getString("ming tian jiu yao fangjia le ",getStringReg);

    }

    /**

    * 获取查询的字符串

    * 将匹配的字符串取出

    */

    private void getString(String str, String regx) {

    //1.将正在表达式封装成对象Patten 类来实现

    Pattern pattern = Pattern.compile(regx);

    //2.将字符串和正则表达式相关联

    Matcher matcher = pattern.matcher(str);

    //3.String 对象中的matches 方法就是通过这个Matcher和pattern来实现的。

    System.out.println(matcher.matches());

    //查找符合规则的子串

    while(matcher.find()){

    //获取 字符串

    System.out.println(matcher.group());

    //获取的字符串的首位置和末位置

    System.out.println(matcher.start()+"--"+matcher.end());

    }

    }

    /**

    * 字符串的分割

    */

    private void getDivision(String str, String regx) {

    String [] dataStr = str.split(regx);

    for(String s:dataStr){

    System.out.println("正则表达式分割++"+s);

    }

    }

    /**

    * 字符串的替换

    */

    private void getReplace(String str, String regx,String replaceStr) {

    String stri = str.replaceAll(regx,replaceStr) ;

    System.out.println("正则表达式替换"+stri);

    }

    /**

    * 字符串处理之匹配

    * String类中的match 方法

    */

    public void getMatch(String str, String regx){

    System.out.println("正则表达匹配"+str.matches(regx));

    }

    }

    以上就是Java正则表达式的全部内容,希望对大家的学习有所帮助

    展开全文
  • import java.util.regex.Pattern问题

    千次阅读 2018-01-24 19:02:24
    第一个xx说:The import java.util.regex.Pattern cannot be resolved 第二个:Pattern cannot be resolved to a type 试了网上好多方法,最后发现是用JDK是1.8,Eclipse版本太旧了,在Eclipse官网下载最新...

    第一个xx说:The import java.util.regex.Pattern cannot be resolved

     

    第二个:Pattern cannot be resolved to a type

     

    试了网上好多种方法,最后发现是用的JDK是1.8的,Eclipse版本太旧了,在Eclipse官网下载最新版的就好了

    展开全文
  • java regex date

    2019-01-21 13:46:56
    其实就是一规则。有自己特殊应用。  * 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度事情就是正则表达式做 * B:案例演示  * 需求:校验qq号码.  ...
  • java.util.regex.Pattern正则表达式已编译实现。正则表达式通常以字符串形式出现,它首先必须被编译为Pattern类一个实例。结果模型可以用来生成一个Matcher,它(生成Macher实例)可以匹配根据这个...
  • 1.用JAVA自带函数 public static boolean isNumeric(String str){ for (int i = str.length(); --i;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } 2.用正则...
  • java.util.regex.Pattern 正则表达式已编译实现。 正则表达式通常以字符串形式出现,它首先必须被编译为Pattern类一个实例。 结果模型可以用来生成一个Matcher,它(生成Macher实例)可以匹配根据 这...
  • JavaRegex简单应用

    2008-05-01 15:55:00
    Regex模式是一有价值基础工具,可以用于很多类型文本处理,如匹配、搜索、提取、替换和分析结构化内容. Pattern.matches(String pattern, String resource)方法和Stringmatches方法都适合一次性使用,但是若...
  • 正则表达式(regular expression)是根据字符串集合内每个字符串共享共同特性来描述字符串集合途径。正则表达式可以用于搜索、编辑或者处理文本和数据。必须了解创建正则表达式特定语法——这超出了Java...
  • 正则表达式是对字符串操作逻辑公式,就是用事先定义好一些特定字符、及这些特定字符组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串过滤逻辑。 转载:...
  • 以下示例所使用 Java 版本为: 1.8.0 有了上一章 python 中 re 模块铺垫(正则表达式(三):python re模块),对于 ...Java 作为一被广泛使用编程语言,从 jdk-1.4 开始,标准库提供了 java.util.regex ...
  • java源码解析之Regex正则(一)

    千次阅读 2018-05-17 00:05:42
    本章介绍Regex正则相关知识。   曾几何时,我认为自己接触所有知识中最高级为正则,原因在于它提供了一模式匹配,并且认为它是很低层操作。 并且了解到编译器或者汇编器也大量运用了正则,但是这次...
  • Java regex正则表达式

    2010-08-07 10:48:00
     大 家都知道,正则表达式是一可以用于模式匹配和替换规范,一个正则表达式就是由普通字符(例如字符a到z)以及特殊字符(元字符)组成文字模式,它 用以描述在查找文字主体时待匹配一个或多个字符...
  • 正则表达式(regular expression)是根据字符串集合内每个字符串共享共同特性来描述字符串集合途径。正则表达式可以用于搜索、编辑或者处理文本和数据。必须了解创建正则表达式特定语法——这超出了Java...
  • 在SunAPI中对在对 “最大匹配Greedy”“最小匹配Reluctant”“完全匹配Possessive”描述,不能让我明白他们有什么区别,现在将我对这三匹配模式理解写出来,供大家参考。 1、Greediness(贪心)匹配: ...
  • 众所周知,在程序开发中,难免会遇到... 大 家都知道,正则表达式是一可以用于模式匹配和替换规范,一个正则表达式就是由普通字符(例如字符a到z)以及特殊字符(元字符)组成文字模式,它 用以描述在查找文字
  •  正则表达式,regular express, 用来描述一个文本模式,与java.util.regex包、文本编辑器、和许多脚本语言一同使用,可以提供复杂文本查找和强大  字符串处理功能。  正则表达式描述了文本中一个模式,...
  • java.util.regex.Pattern

    千次阅读 2004-09-20 19:27:00
    这两天刚好想学习正则表达式,不过网上找不到什么好资料,只好自己看api,今天上午边看边翻译了一些,由于第一次翻译,错误很多,望各位不吝指正:java.util.regex.Pattern正则表达式已编译实现。...
  • java.util.regex是一个用正则表达式所订制模式来对字符串进行匹配工作类库包。 正则表达式(regular expression)是根据字符串集合内每个字符串共享共同特性来描述字符串集合途径。 java.util.regex包...
  • 本文给大家分享java使用正则表达式匹配中文实例代码,以及java中要匹配中文正则表达式两写法,感兴趣朋友通过本文一起看看吧
  • 正则表达式是对字符串操作逻辑公式,就是用事先定义好一些特定字符、及这些特定字符组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串过滤逻辑。 给定一个正则表达式和另一个字符...
  • 正则表达式java.util.regex.Pattern

    千次阅读 2006-07-13 16:21:00
    java.util.regex.Pattern正则表达式已编译实现。正则表达式通常以字符串形式出现,它首先必须被编译为Pattern类一个实例。结果模型可以用来生成一个Matcher,它(生成Macher实例)可以匹配根据这个...
  • 在Unix下,用户可以使用正则表达式强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一有价值基础工具,可以用于很多类型文本处理, 如匹配,搜索,提取和分析结构化内容. ...
  • 正则表达式是一强大而灵活文本处理工具。使用正则表达式,我们能够以编程方式,...字符串替换Java关于正则表达式处理主要提供了两个类:Pattern和Matcher,查看JDK文档在java.util.regex目录下。Mather通过调
  • java-String.split(regex)

    2020-03-12 21:33:55
    在正则规则中,* ^ | 等符号在正则表达式中属于一有特殊含义字符,如果使用此字符作为分隔符,必须使用转义符即\或\\加以转义。 https://www.cnblogs.com/xiaoxiaohui2015/p/5838674.html 二、usage 特殊...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 780
精华内容 312
关键字:

java种的regex

java 订阅