网站建设实训结论与分析总结,iis 网站绑定域名,wordpress游戏网站,学校的网站是怎么建设的目录
1.概念
2. 为什么使用正则表达式#xff1f;
3. 语法
1.普通字符
非打印字符
2. 特殊字符
3. 限定符
4. 定位符
5. 运算优先级
3.匹配规则
1. 基本模式匹配
2. 字符簇
3. 确定重复出现 1.概念
正则表达式(Regular Expression)是一种文本模式#xff0c;包…目录
1.概念
2. 为什么使用正则表达式
3. 语法
1.普通字符
非打印字符
2. 特殊字符
3. 限定符
4. 定位符
5. 运算优先级
3.匹配规则
1. 基本模式匹配
2. 字符簇
3. 确定重复出现 1.概念
正则表达式(Regular Expression)是一种文本模式包括普通字符例如a 到 z 之间的字母 和特殊字符称为元字符正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。 2. 为什么使用正则表达式
典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本虽然这种技术对于对 静态文本执行简单搜索和替换任务可能已经足够了但它缺乏灵活性若采用这种方法搜索 动态文本即使不是不可能至少也会变得很困难。
正则表达式(regular expression)描述了一种字符串匹配的模式pattern可以用来检查一 个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等
正则表达式可以灵活的匹配到 通用字符它一般用在测试密码框账号框等输入框中的字符是否匹配。
3. 语法
正则表达式是由普通字符例如字符 a 到 z以及特殊字符称为元字符组成的文字 模式
1.普通字符
普通字符包括大写和小写字母、所有数字、所有标点符号以及非打印字符和一些其他符号。
非打印字符 2. 特殊字符
特殊字符就是一些有特殊含义的字符如下 3. 限定符 号代表前面的字符必须至少出现一次1 次或多次 sjp可以匹配 sjp、sjpp、sjppp等 * 号代表前面的字符可以不出现也可以出现一次或者多次 sjp*可以匹配sj、sjp、sjpp 等0 次、或 1 次、或多次 ? 问号代表前面的字符最多只可以出现一次0 次、或 1 次 sjp? 只能 匹配 sj 或者 sjp {n}, n 是一个非负整数。匹配确定的 n 次。 例如o{2} 不能匹配 Bob 中的 o但是能匹配 food 中的两个 o {n,},n 是一个非负整数。至少匹配 n 次 o{2,} 不能匹配 Bob 中的 o但能匹配 foooood 中的所有 o。o{1,} 等价于o。o{0,} 则等价于 o*。 {n,m}m 和 n 均为非负整数其中 n m。最少匹配 n 次且最多匹配 m 次 最少匹配 n 次且最多匹配 m 次。例如o{1,3} 将匹配fooooood 中的前三个 o 4. 定位符 注意不能将限定符与定位符一起使用。由于在紧靠换行或者单词边界的前面或后面不能有 一个以上位置因此不允许诸如 ^* 之类的表达式
5. 运算优先级
正则表达式从左到右进行计算并遵循优先级顺序这与算术表达式非常类似。 相同优先级的从左到右进行运算不同优先级的运算先高后低。下表从最高到最低说明了各 种正则表达式运算符的优先级顺序 3.匹配规则
1. 基本模式匹配
模式是正则表达式最基本的元素它们是一组描述字符串特征的字符。模式可以很简单由普通的字符串组成也可以非常复杂往往用特殊的字符表示一个范围内的字符、重复出现或表示上下文。
^ 符号用来匹配那些以给定模式开头的字符串
^once
/*
这个模式 包含一个特殊的字符^表示该模式只匹配那些以 once 开头的字符串。
例如 该模式与字符串once upon a time匹配与There once was a man from NewYork
不匹配。正如如^符号表示开头一样.
*/
$符号用来匹配那些以给定模式结尾的字符串
bucket$
/*
这个模式与Who kept all of this cash in a bucket匹配与buckets不匹配。字符 ^ 和 $ 同
时使用时表示精确匹配字符串与模式一样
*/
^bucket$
/*
这个模式只匹配字符串bucket
*/
如果一个模式不包括^和$那么它与任何包含该模式的字符串匹配。 例如 模式once 字符串There once was a man from NewYorkWho kept all of his cash in a bucket. 匹配 2. 字符簇
正则表达式通常用来验证用户的输入。当用户提交一个 表单以后要判断输入的电话号码、地址、EMAIL 地址、信用卡号码等是否有效用普通的基于字面的字符是不够的。 所以就需要用字符簇来表示。
要建立一个表示所有元音字符的字符簇就把所有的元音字符放在一个方括号里
[AaEeIiOoUu]
这个模式与任何元音字符匹配但只能表示一个字符用连字号可以表示一个字符的范围
[a-z] //匹配所有的小写字母
[A-Z] //匹配所有的大写字母
[a-zA-Z] //匹配所有的字母
[0-9] //匹配所有的数字
[0-9\.\-] //匹配所有的数字句号和减号
[ \f\r\t\n] //匹配所有的白字符
这些也只表示一个字符。如果要匹配一个由一个小写字母和一位数字组成的字符串
比如z2、t6或g7但不是ab2、r2d3 或b52的话用这个 模式
^[a-z][0-9]$
尽管[a-z]代表 26 个字母的范围但在这里它只能与第一个字符是小写字母的字符串匹配。
上面提到^表示字符串的开头但它还有另外一个含义。当在一组方括号里使用 ^ 时 它表示非或排除的意思常常用来剔除某个字符
还用前面的例子我们要求第一个字符不能是数字
^[^0-9][0-9]$
这个模式与5、g7及-2是匹配的但与 12、66 是不匹配的。下面是几个排除特定字 符的例子
[^a-z] //除了小写字母以外的所有字符 3. 确定重复出现
如果一个单词有若干个字母组成一组数字有若干个单数组成。跟在字符或字符簇后面的花括号({})用来确定前面的内容的重复出现的次数
如下
^a{4}$ // aaaa
^a{2,4}$ //aa aaa aaaa
^a{2,}$ // aa ,aaa aaa等多个a
^a{2,} //aardvark 和 aaab可以 apple不行
a{2,} //baad aaaa可以但Nantucket不行
.{2} //匹配所有的两个字符
\t{2} //两个字表符 更多的单词和数字的匹配
^[a-zA-Z0-9_]{1,}$ // 所有包含一个以上的字母、数字或下划线的字符串
^[1-9][0-9]{0,}$ // 所有的正整数
[1-9] 表示 可以从中 1-9选中一个字符[0-9]{0,} 表示可以从0~9中选择任意个字符。
^\-{0,1}[0-9]{1,}$ //所有整数
\-{0,1}:表示可以匹配0个或者1个 - 符号
[0-9]{1,}表示可以匹配1个以上的 0-9数字
^\-?[0-9]{1,}\.?[0-9]{1,}$ //所有的浮点数