30分钟学习正则表达式——学习笔记
来源:互联网 发布:淘宝网主页 编辑:程序博客网 时间:2024/06/07 16:11
http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
先上一个小例子:简单的邮箱匹配
<script>
var str = "123lk8ks@sina.com";
var patt1 = /^[0-9]+\w+@[0-9a-zA-Z]+.com$/;
document.write(str.match(patt1));
</script>
运行结果:123lk8ks@sina.com
分析:
小例子是将str的值和正则做匹配,match()方法是匹配成功返回字符串,匹配失败返回null。
来拆分正则:^[0-9]+\w+@[0-9a-zA-Z]+.com$
^:开头位置
$:结尾位置,前面跟了‘.com’,就表示以‘.com’结尾
[0-9]+:一个或多个0-9的数字,+表示前面的内容有一个或多个(不能是0个)
\w+:\w匹配字母、数字、下划线或汉字,后面带+表示一个或多个
[0-9a-zA-Z]+:一个或多个数字或字母
==================================================================================================================
笔记正式开始:
(1)元字符
\b:表示单词的开头或结尾,也就是单词的分界处。
例:要精确查找单词“hi”:\bhi\bs
\d:表示一位数字
\s:任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等
\w:匹配字母、数字、下划线或汉字
.:可以匹配除了换行符以外的任意字符
^:开头位置
$:结尾位置,前面跟了‘.com’,就表示以‘.com’结尾
(2)重复
*:表示*前面的内容可以连续重复使用任意次(可以是0次)
例:hi后面不远处跟着一个Lucy:\bhi\b.*\bLucy\b
?:表示?前面的内容可以出现0或1次
+:表示+前面的内容可以出现1或多次(不能是0)
{n}:表示前面的内容要出现n次
{n,m}:表示前面的内容可以出现n-m次
例:\d{3-8}: 3到8个数字,如‘12345’可以匹配,‘12’、‘123456789’都不行。
(3)转义、字符类
\:转译字符,一些特殊字符比如‘.’、‘*’、‘-’、‘\’等,可能会被解释成别的意思,这时得用\来消除特殊意义。
[.?!]:匹配标点符号‘.’‘?’‘!’
[0-9a-zA-Z]:匹配任意一个数字或字母,后面可跟重复表达式
例:[0-9a-zA-Z]+:表示任意1个或多个数字或字母
(4)分支条件
|:或,有几种规则,满足任意一种都当成匹配。
从左到右,有先满足的就停止匹配。
例:0\d{2}-\d{8}|0\d{3}-\d{7}:表示能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。
(5)分组(可实现多个字符的重复)
():子表达式,也叫分组。(英文格式的小括号)
后面常跟重复,来简化表达式。
例:一个简单的IP表达式:(\d{1,3}\.){3}\d{1,3}
正确的IP表达式:((2[0-4]\d|25[0-5]|[0,1]?\d\d?)\.){3}((2[0-4]\d|25[0-5]|[0,1]?\d\d?)\.)
(6)反义(几个元字符的大写,就是它的相反意思)
\W:匹配任意不是字母、数字、下划线、汉字的字符
\S:匹配任意不是空白符的字符
\D:匹配任意非数字的字符
\B:匹配不是单词开头或结束的位置
[^x]:匹配除了x以外的任意字符
[^abcde]:匹配除了abcde这几个字母以外的任意字符
例:\S+:匹配不包含空白符的字符串
<a[^>]+>:匹配用尖括号括起来的以a开头的字符串
时间原因,笔记只记录到这里,日后有时间再继续学习补齐笔记。
- 30分钟学习正则表达式——学习笔记
- 30分钟入门正则表达式 学习笔记
- 30分钟学习正则表达式
- 30分钟学习正则表达式指南
- 30分钟学习正则表达式指南(二)
- 30分钟学习正则表达式的使用
- 正则表达式学习30分钟入门教程
- ios学习--正则表达式30分钟入门教程
- 正则表达式学习笔记之一——正则表达式引擎
- linux学习笔记——正则表达式
- 学习笔记——精通正则表达式
- Java学习笔记——正则表达式
- 正则表达式学习笔记——
- 正则表达式——学习笔记1
- JS正则表达式——学习笔记
- Javascript学习笔记——正则表达式
- 正则表达式——学习笔记
- Java学习笔记——正则表达式
- Oozie原理 以及 Action执行模型简单分析
- (转)Ultra-Pull-To-Refresh上拉加载的使用
- iOS 11中tableView下移问题
- 二叉搜索树
- win7 64位TensorFlow1.2.1的安装
- 30分钟学习正则表达式——学习笔记
- win10下载文件夹变成英文了该怎么办?下载文件夹变成英文的修复方法
- The Necklace ——UVA
- 关于MySQL字符集问题:Specified key was too long; max key length is 767 bytes
- python文件操作
- mnist
- html之js数组
- java中关于DecimalFormat四舍五入的用法
- 第九章 JSP标签