栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA api--正则表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA api--正则表达式

一、 什么是正则表达式:

正则表达式是由普通字符(如英文字母)以及特殊字符(也称为元字符)组成的文字模式。该模式对文本查找时需要匹配的一个或多个字符串描述,给出一个匹配模板。

二、为什么要使用正则表达式:

  正则表达式可以大大简化文本识别工作,现已超出了某种语言或某个系统的局限,成为被人们广为使用的工具。

正则 : 对字符串的匹配,判断是否是某种格式

正则表达式也是一段字符串,里面放的是匹配的规则

正则规则:
  d 数字
  D 非数字
  w 数字+英文+下划线
  W 非数字+英文+下划线
  s 空格
  S 非空格

正则中的特殊符号
  ? 0-1次
  + 最少一次
  * 任意次
  . 任意字符

简介:

 

 匹配字符集:

匹配字符集是预定义的用于正则表达式中的符号集。如果字符串与字符集中的任何一个字符相匹配,它就会找到这个匹配项。

正则表达式举例:

正则表达式举例
非负整数:        “^d+$ ”
正整数:          “ ^[0-9]*[1-9][0-9]*$” 
非正整数:        “ ^((-d+)|(0+))$” 
整数:            “ ^-?d+$” 
英文字符串:      “ ^[A-Za-z]+$” 
英文字符数字串:  “ ^[A-Za-z0-9]+$” 
英数字加下划线串:“^w+$” 
E-mail地址:      “^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$” 
URL:             “^[a-zA-Z]+://(w+(-w+)*)(.(w+(-w+)*))*(?s*)?$”

 “否”符号:

“^”符号称为“否”符号。

如果用在方括号内,“^”表示不想要匹配的字符。

例如,图四的正则表达式匹配所有单词,但以“X”字母开头的单词除外。

 

圆括号和空白符号:

假设要从格式为“June 26, 1951”的生日日期中提取出月份部分,用来匹配该日期的正则表达式

“s”符号是空白符号,匹配所有的空白字符,包括Tab字符。

如果字符串正确匹配,接下来如何提取出月份部分呢?只需在月份周围加上一个圆括号创建一个组

  String str="";
        
        // 匹配英文名字 Join|join|marry
        
        
        // 用户名:只能是英文 6~12 位
        
        
        // 用户名:只能是数字 6~12位(不能以0开始)
        
        
        // 用户名:英文+数字+下划线 6~12位(必须以字母开头)
        
        
        // 匹配密码:6位的数字 不能以0开头
        
       
     // 匹配用户名:
        // 必须英文,数字,下划线的字符  
        // 长度在3-4之间
        // 必須以 admin 或者 sa 開頭
        
        
        // 1-50位并且只能是字母或数字
        //  System.out.println(str.matches("[0-9a-zA-Z]{1,50}");
        
        // 密码8-16位且可以是数字与字母的组合
        //  System.out.println(str.matches("[0-9a-zA-Z]{8,16}");
        
        // 正则中的特殊符号
        // ? 0-1次
        // + 最少一次
        // * 任意次
        // . 任意字符
        
        // 密码8-16位且是数字与字母的组合
        // (必须有数字+字母)
        //  System.out.println(str.matches("[a-zA-Z0-9]{8,16}");
        
        // 匹配用户名:
        // 必须是abcdefg02468中的字符组成
        // 长度在6位以上
        //  System.out.println(str.matches("[a-g02468]{6,}");
        
        // 匹配abcdefg 选择一个或0个
        //  System.out.println(str.matches("[a-g]?");
        
        // 匹配一个任意的数字
        // 避免负数
        // 避免0打头的
        
        
        // 匹配小数
        
        
        // 匹配负小数
        // -?\d+[.]\d+
        
        // 匹配邮箱: @ .
        // 123@qq.com
        // www.123@qq.com
        
        
        // 月份 1-12
        // 1-9  -> [1-9]
        // 10-12  -> 1[0-2]
        
        
        // 匹配日期 1-31
        // 1-9  -> [1-9]
        // 10-29  -> [1-2][0-9]
        // 30-31  -> 3[0-1]
        
        
        // 匹配年龄 1-150
        // 1 - 9        [1-9]
        // 10 - 99      [1-9]d
        // 100 - 149     1[0-4]d
        // 150            150
        
        //[1-9]|[1-9]d|1[0-4]d|150
        
        // 匹配手机号码
        // 位数:11
        // 1开头 2位:3456789
        
        // 1(3d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8d|9[0-35-9])d{8}

希望能够给各位带来一点帮助,其中如有错误还请多多指教,谢谢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/967259.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号