`

学习笔记——正则表达式

阅读更多

JavaEye挂了。。设计模式的学习有些停滞,正好把想看的正则表达式看了

正则表达式主要作用是用来描述字符串对象的,还可以用来匹配字符串(我感觉最多的就是各种验证,查找替换中的实际应用)

 

正则表达式语法:

     字符与字符串

直接用字母和数字 /a/ /b/ /abc/ /123/

还有反斜杠加特殊字符 \n \t \( \o等等

     字符类

[…] 可以匹配一个字符 [abc] [a-z] [A-Z]等等 只能匹配一个

[^…] 除去特定字符 [^abc] [^a-z]等等

特别的有

. 除换行,终止符之外的所有字符

\w 所有ASCII单字字符 (注意小写 大写是除所有外 相当于^

\d 数字

\s 空白符

     重复类 限定符

指定字符要重复的次数

{n} {n,m} {n,} 相当于一个范围 重复n n-m 至少n

特别的

? 01 相当于{0,1}

+ 至少1 相当于{1,}

0或多次 {0,}

     选择符

 abc|asd|qaz 注意从左到右只会匹配第一个

     定位符

^ 表示开头

$ 表示结尾

还有一些\b \B (?=p) (?!p)

     分组

(…) (?...) 将一个字符串看做整体分组 后者不记忆与该组合所匹配的内容 其他无异 配合限定符使用

     引用

\n 表示第n个分组 比如\1 \2

/[‘”][^’”]*[‘”]/表示一个字符串 但是它包含了开头结尾或者开头结尾的

/[‘”][^’”]*\1/则解决了该问题

所以引用不是单纯复制匹配模式,而是重复内容

     标志

i 不区分大小写

g 全局模式 不是找到一个就结束

m 多行匹配模式

用得比较多的ig 用法是加在表达式后 /abc/i  /abc/gi /abc$/m

 

以上都是语法,下面记录点例子

●邮编:

首先都是数字 可以用\d

然后是6 所以是\d{6} 但是这样也会同123456789这些大于6位的匹配

所以加上限定符^\d{6}$

     身份证号码(18位):

17位是数字 \d{17}

1位是数字或 [\d|X]

同样加上限定符^\d{17}[\d|X]$

     验证Email地址:

用户名部分 由字母,数字,下划线等组成 [\w-_]+

@部分 @

域名部分 可以用.作为分隔符,除最后一部分,都由字母,下划线等组成

[\w-]+\.表示有.的部分 [\w-]+表示只含字母的部分

完整的就是([\w-]+\.)+[\w-]+

最终 Email验证的正则表达式 ^[w-_]+@([\w-]+\.)+[\w-]+$

 

补充上来一个常用正则表达式

http://flytosea.iteye.com/blog/763908

 

韩神推荐的正则教程 http://deerchao.net/tutorials/regex/regex.htm#lookaround

 

分享到:
评论

相关推荐

    MLDN学习笔记 —— 正则表达式

    NULL 博文链接:https://zisefeiniao.iteye.com/blog/376874

    Linux学习笔记【博文整理系列】

    学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 ...Linux笔记——正则表达式入门及应用 Linux笔记——linux进程 Linux笔记——SVN命令总结 rpm&yum包管理命令总结 The end wklken

    JAVA学习笔记第十三天示例代码

    JAVA学习笔记第十三天——正则表达式、StringBuilder、包装类型、Collection常用API,包含了这些知识点的使用,示例代码。

    MySql官方手册学习笔记2 MySql的模糊查询和正则表达式

    SQL模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配...+——–+——–+———+——+————+————+| name | owner | species | sex | birth | death |+——–+——–+———+——+————+————+|

    四、pink老师的学习笔记——元素的显示与隐藏

    1. 元素的显示与隐藏 目的 让一个元素在页面中消失或者显示出来 场景 ... 1.1 display 显示(重点) display 设置或检索对象是否及如何显示。 display: none 隐藏对象 display:block 除了转换为块级元素之外,同时还有...

    ExtJS4中文教程2 开发笔记 chm

    ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(三)---VBox的使用 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(二)---HBox的使用 ExtJS4学习笔记(五)---Grid分页 ExtJS4...

    2021最新java面试合集pdf.rar

    MongoDB学习笔记.docx mybatis原理.docx MyBatis面试专题.docx MyBatis面试专题及答案.pdf Mybatis面试题(含答案).pdf MySQL性能优化的21个最佳实践.pdf mysql面试专题.docx MySQL面试题(含答案).pdf Netty面试...

    Java开发详解.zip

    031115_【第11章:Java常用类库】_正则表达式笔记.pdf 031116_【第11章:Java常用类库】_定时调度笔记.pdf 031201_【第12章:JAVA IO】_File类笔记.pdf 031202_【第12章:JAVA IO】_RandomAccessFile笔记.pdf 031203...

    jive.chm

    2 Jive中的分页处理 3 Jive中Jdom使用剖析 4 丰富的图释 5 使用正则表达式让你的jive显示图片 6 Jive3增加帖子的点击功能的高效方法 <br> 国际化支持 1 jive_forums_i18n_zh_...

    asp.net知识库

    VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...

    Jive资料集

    系统设计 1 jive设计思路 2 jive的工作内幕 3 Jive源代码研究 4 Jive中的设计模式 5 jive学习笔记 <br> <br> 数据库设计 1 Jive Forums数据库说明(英文) 2 Jive KB...

Global site tag (gtag.js) - Google Analytics