正则表达式日记

一、界定符

表示一个正则表达式的开始和结束

(1)//
(2)##
(3){}
例:‘/[0-9]/‘

二、原子

正则表达式中的最小匹配单位,通常它只是Unicode编码表中的某个字符
(1)可见原子:Unicode编码表中用键盘输出后肉眼可见的字符
例:
标点
英文字母数字
汉字、日文、阿拉伯文等其他语言文字
数理化公式符号
其他可见字符
(2)不可见原子:Unicode编码表中用键盘输出后肉眼不可见的字符
例:
换行符 \n
回车\r
制表符 \t
空格
其他不可见符号
patten中若有中文汉字,建议换成unicode编码

三、元字符

(1)定义原子的筛选方式
(2)把某一类原子,比较类似的原子(英文字母abcd和数字1234)进行归类,给出一个缩写来简化正则表达式的书写方式。

1、原子的筛选方式
(1)[] :匹配出现在[]中的任意一个原子
(2)| :或运算。匹配|符号左右两边的任意一个
(3)[^ ] :取反。这里^必须和[紧挨着,才表示匹配除了[]里面任意原子的字符
注:[78^9]表示匹配,7、8、^、9任意一个
(4). :任意字符(除换行符外)

2、原子的集合
. 匹配出了换行符之外的任意字符
(1)\d 匹配任意一个十进制数字,即 [0-9]
(2)\D 匹配任意一个非十进制的数字,即 [^0-9]
(3)\s 匹配一个不可见原子,即 [\f\n\r\t\v]
(4)\S 匹配一个可见原子,即[^\f\n\r\t\v]
(5)\w 匹配任意一个数字、字母或下划线,即 [0-9a-zA-Z_]
(6)\W 匹配任意一个非数字、字母或下划线,即 [^0-9a-zA-Z_]

四、量词

(1){n} 表示其前面的原子恰好出现n次。
(2){n,} 表示其前面的原子最少出现n次。
(3){n,m} 表示其前面的原子最少出现n次,最多出现m次。
(4)* 匹配0次,1次,多次其前面的原子,即{0,}。
(5)+ 匹配1次,多次其前面的原子,即{1,}。
(6)? 匹配0次,1次其前面的原子,即{0,1}。

五、边界控制

(1)^ :匹配字符串开始的位置 ^string:只能匹配一开始就为string字符串,不能有空格
(2)$ :匹配字符串结尾的位置

六、模式单元

() 括号的整体为一个原子

七、修正模式

标识:在正则表达式的末尾,也就是斜杠(/)的后面,加修正模式的标识
(1)u :贪婪匹配,匹配结果存在歧义时,匹配结果越多越好。默认是贪婪模式。
例:‘/[a-zA-Z0-9]+/‘
(2)U :懒惰匹配,匹配结果存在歧义时,匹配结果越少越好。
例:‘/[a-zA-Z0-9]+/U‘ 
(3)i :忽略英文字母大小写
(4)x :忽略空白
(5)s :让元字符“.”匹配包括换行符在内的所有字符

八、实例

(1)非空:.+
(2)浮点:小数点后两位:\d+\.\d{2}$
(3)手机:^1[358]\d{9}$
(4)邮箱:^\w+(\.\w+)*@\w+(\.\w+)+$
(5)URL:^(https?://)?(\w+\.)+[a-zA-Z]+$

正则检测工具:http://tool.chinaz.com/regex/

时间: 2025-01-28 00:44:36

正则表达式日记的相关文章

黑马程序员-学习日记(正则表达式)

 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 正则表达式的常用构造: 字符类     [abc] a.b 或 c(简单类)     [^abc] 任何字符,除了 a.b 或 c(否定)     [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) 预定义字符类     . 任何字符(与行结束符可能匹配也可能不匹配)     \d 数字:[0-9]     \D 非数字: [^0-9]     \s 空白字符:[ \t

Linux学习日记--基础命令(6)--grep及正则表达式

grep: Global search REgular expression and Print out the line.        作用:文本搜索工具,根据用户指定的"模式"对目标文本逐行进行匹配检查:打印匹配到的行:            模式:由正则表达式字符及文本字符所编写的过滤条件:            REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能:                分两类:         

菜鸟成长日记:Java基础篇4 --- 正则表达式

一.初步认识 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串", 这个"规则字符串"用来表达对字符串的一种过滤逻辑.正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串 从网上搜集了两个例子,感觉很好贴上 例一 this\s+is\s+text ---> this is text 注意字符串中的 \s+.匹配单词 "this" 后面的 \s+ 可以匹配多个

正则表达式学习日记zz

1."."为通配符,表示任何一个字符,例如:"a.c"可以匹配"anc"."abc"."acc": 2."[]",在[]内可以指定要求匹配的字符,例如:"a[nbc]c"可以匹配"anc"."abc"."acc" :但不可以匹配"ancc",a到z可以写成[a-z],0到9可以写成[0-9

python初学者日记02(正则表达式)

写作时间:2018/12/17 作者:永远的码农(博客园) 一.正则表达式简介: 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式通常被用来检索.替换那些符合某个模式(规则)的文本. 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 正则表达

2019-05-23 Java学习日记之正则表达式&常用工具类

正则表达式 概述: 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串. 其实就是一种规则.有自己特殊的应用. 作用: 比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度, 这个限制长度的事情就是正则表达式做的 package com.regex; public class Demo1 { public static void main(String[] args) { // 非正则表达式实现 System.out.println(checkQQ("012345"))

Python学习日记(十四) 正则表达式和re模块

正则表达式: 它是字符串的一种匹配模式,用来处理字符串,可以极大地减轻处理一些复杂字符串的代码量 字符组:它是在同一位置可能出现的各种字符组成了一个字符组,用[]表示,但是它的结果只能是一个数字或者一个大写字母或小写字母等 下面测试以该网站为例http://tool.chinaz.com/regex/ #正则表达式 匹配字符串 匹配结果 #[0-9] 9 9 [0-9]的写法就相当于在用[0123456789] #[0123456789] 0 0 #[a-z] 1 None 这里只匹配小写字符a

[UWP小白日记-14]正则表达式

匹配浮点数: ^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$ 匹配2位浮点数:^(([1-9]+[0-9]*.{1}[0-9]{1,2})|([0].{1}[1-9]+[0-9]{1,2})|([1-9][0-9]{1,2})|([0][.][0-9]+[1-9]{1,2}))$ 来自为知笔记(Wiz)

杂园日记-正则表达式

1.移动电话:var regM = /^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57]|168)[0-9]{8}$/: 2.密码8-16位数字加字母:var regP = /^(?![\\d]+$)(?![a-zA-Z]+$)(?![^\\da-zA-Z]+$).{8,16}$/; 3.一位数字为0-5的数字:/^[0-5]{1}$/: 4.数字类型最多保留小数点后2位:/^[0-9]+(\.\d{1,2})?$/: 5.邮箱验证或"noemail&q