澳门太阳娱乐集团官网-太阳集团太阳娱乐登录

正则表达式
分类:脚本专栏

正则表达式是用来验证数据的,验证数据非常简单,但是执行效率不高,通过一些元字符(具有特殊含义的字符)去验证数据

正则表达式(2),正则表达式

  • String类三个和正则表达式相关的方法
   1.boolean matches
  “abc”.matches(“[a]”) 匹配成功返回true。
 2.String[] split(String 正则的规则)
  “abc”.split(“a”) 使用规则将字符串进行切割。
 3.String replaceAll( 替换字符串)
  “abc0123”.repalceAll(“[d]”,”#”)。
  • 例1 public boolean matches(String regex) 
    校验qq号码. 
    1: 要求必须是5-15位数字; 
    2: 0不能开头。 
1     String qq = "604154942";
2     String regex = "[1-9][0-9]{4,14}";
3     boolean flag2 = qq.matches(regex);

 

  • 例2 public String[] split(String regex) 
    分割出字符串中的的数字
1     String s = "18-22-40-65";
2     String regex = "-";
3     String[] result = s.split(regex);
  • 例3 public String replaceAll(String regex,String replacement) 
    把文字中的数字替换成*
1     String s = "Hello12345World6789012";
2     String regex = "[0-9]";
3     String result = s.replaceAll(regex, "*");

 

  •  检验邮箱

  1、 @: 前 数字字母_ 个数不能少于1个

  2、 @: 后 数字字母 个数不能少于1个
  3、 . : 后面 字母

public static void checkMail(){
        String email ="[email protected]";
        boolean b = email.matches("[a-zA-Z0-9_][email protected][0-9a-z]+(\.[a-z]+)+");
        System.out.println(b);
    }

String类三个和正则表达式相关的方法 1.boolean matches “abc”.matches(“[a]”) 匹配成功返回true。 2.String[] split(...

15 正则表达式,正则表达式

正则表达式,正则表达式 ...

定义字符集

[a-e] 随意匹配a到e连续字符中的某一个字符

[aeiou] 随意匹配aeiou这5个零散字符中的某一个字符

[a-z] 随意匹配26个小写英文字母之一

[A-Z] 随意匹配26个大写英文字母之一

[a-zA-Z] 随意匹配一个大写 或 小写英文字母

[0-9] 随意匹配0到9之间任意一个数字

[a-zA-Z0-9] 随意匹配一个大小写英文字母或数字

[a-zA-Z0-9_-] 随意匹配一个大小写英文字母或数字或_下划线或-中横线之一

[5-7] 随意匹配5到7连续数字的一个数字

注意:

匹配数字、英文字母的一段 ,段的开始到结尾必须由小到大设置

像[7-2]、[h-c]等等都是错误的语法

特别字符集

$ 匹配目标字符串的”结尾”位置。

^ “托字符”匹配目标字符串的”开始”位置

^的作用:

① $pat = “/^hello/”; /hello需要在目标内容开始出现

② $pat = “/[^0-9]/”匹配非0到9之间数字以外的其他字符内容

标记一个子表达式的”开始”和”结束”位置

小括号作用:

① 提高子表达式优先级

② 可以从大的字符串拆分小的内容出来

* 表示其前面那个单元出现0次或以上 任意次数

. 匹配除换行符 n之外的任何单字符, 例如 .* 表示匹配任何内容

+ 表示其前面那个单元出现1次或以上 任意次数

? 表示其前面那个单元出现0次或1次 要么出现、要么不出现

这个符号是用来转义的,去除符号的特殊意思,只保留符号的本质意思

| 指明两项之间只选择一个,或 的意思

组合字符集

d 表示匹配0到9之间的一个数字 是[0-9]的别名

[1-9] 匹配一个非0数字

[5-9] 匹配5到9之间的一个数字

w 表示匹配字母、数字、下划线其中的一个[a-zA-Z0-9_]

s 表示空格

//匹配hello 和 beijing中间有三个空格

$pat = “/hello beijing/”; //可读性不好

$pat = “/hellosssbeijing/”; //可读性好

限制字符

{m} 其前一单元严格出现m次

{m,} 其前一单元出现至少m次,至多不限制

{m,n} 其前一单元出现至少m,至多n次,n比m要大

模式修正符

正则完全的设置: $pat = “/正则内容/模式修正符”;

I : 忽略大小写

U :就近匹配,避免贪婪匹配!

单次 / 全局匹配

preg_match()

可以通过正则对目标字符串进行“单次”匹配

preg_match_all

(正则,内容,匹配结果)函数

该函数返回二维数组

可以实现对内容的全局匹配,所有与模式符合的内容都给匹配出来

例:

// 单次匹配

$pat = "/d/";

$str = "2016-12-14 19:21:55";

preg_match($pat,$str,$out); // array { [0]=> string "2" }

// 全局匹配

preg_match_assll($pat,$str,$out);

var_dump;

常用验证

// 邮箱验证

$pat = "/`[a-z1-9][a-z0-9.]{5,}@(d+|[a-z]+)+$/i";

$pat =“/w+([.-]?w+)?@w+.(com|cn|net|org)/”;

// 手机号验证

$pat = "/1[3578]d{9}$/";

本文由澳门太阳娱乐集团官网发布于脚本专栏,转载请注明出处:正则表达式

上一篇:Linux查看端口、进度景况及kill进度的措施 下一篇:没有了
猜你喜欢
热门排行
精彩图文