正则表达式

什么是正则表达式:
是检查和匹配字符串的表达式
描述规则和主流语言都有良好支持
主要使用场景:字符串的校验、查找、替换。

正则表达式的案例
检查输入的身份证号是否合法?(15位、18位)
实例:1309999999999

A 精准匹配单个字符 A a
x|y 允许出现的2个字符 y n
[xyz] 字符的集合,允许出现集合内任意单个字符 z c
[a-z] a A
[A-Z] D a
[0-9] 字符的范围 8 A
[^xyz] 0 y
[^0-9] 集合内字符不允许出现 A 8

开源中国:是专门用来测试正则表达式的工具。
http://tool.oschina.net/regex

训练题目:
精准匹配字符串hallo 或者 hello h[ae]llo
请匹配数字范围(0570-0579) 057[0-9]
单选题只允许输入ABCD其中一项[A-D] [ABCD]

元字符:
通过特殊的表达形式单指某一位字符叫:元字符
\d 匹配任意单个数字 8 i
\D 匹配\d规则之外的任意单个字符 i 8
\w 匹配任意单个字母,数字,下划线 Y &
\W 匹配\w规则之外的任意单个字符 & Y
\s 匹配单个空格 x
\n 匹配单个换行符 x
. 匹配任意单个字符(换行符除外)
. 特殊字符,只匹配. . 1

训练题:
请匹配数字:3213.383219
[0-9][0-9][0-9][0-9].[0-9][0-9][0-9][0-9][0-9][0-9]
\d\d\d\d.\d\d\d\d\d\d
匹配座机号码:(0571|0574-XXXXXXXX)
057[14]-\d\d\d\d\d\d\d\d
请匹配18位身份证号:
[1234568]\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d[0-9xX]

[1234568]\d{16}[0-9xX]

多次重复匹配:
A{3} 精准N次匹配 AAA AA
A{3,} 最少出现N次 AAA AA
\d{3,5} 约定出现的最少次数和最大次数 1234 12
\d* 可以出现0次至无限次,相当于\d{0,} 1234
\d+ 最少出现1次,相当于{1,} 12
\d? 最多出现一次,相当于{0,1} 1 12

1、验证短信验证码:6位 \d{6}
2、请匹配全国座机号;(区号3位-4位-电话号码7位或8位)
\d{3,4}-\d{7,8}
请匹配英文姓名(James Watson)
[A-Z][a-z]{1,}\s[A-Z][a-z]{0,}
[A-Z][a-z]+\s[A-Z][a-z]*

定位匹配:
^A.* 头匹配 ABC CBA
.*A$ 尾匹配 CBA ABC
^A.*A$ 全字匹配 ACCCA ACCCB

贪婪模式和非贪婪模式
贪婪模式:在满足条件的情况下会尽可能的多匹配字符串
实例:111222333 \d{6,8}

非贪婪模式:在满足条件的情况下尽可能的少的去匹配字符串
实例:111222333 正则:\d{6,8}?
111222333

表达式分组:
1、分组将“正则”分组为多个子表达式
实例:abababcdcdcd
(ab){3}(cd){3} 用()将表达式进行包裹进行匹配

训练题:
1、匹配验证码(4位 6位) ^\d{4,6}$
(^\d{4}KaTeX parse error: Undefined control sequence: \d at position 5: )|(^\̲d̲{6})
2、匹配车牌号:苏A-U888G
^([苏黑粤][A-Z])-([A-Z0-9]{5})$
3、匹配中文英文姓名
1[a-z]+\s[A-Z][a-z]*$

中文:2{2,8}$

正则表达式的应用:
总结2点:
正则表达式在javascript中 /正则表达式/
onsubmit方法false表单不提交,true表示表单提交

使用正则表达式来抓取web页面数据信息
Java类中做2步操作:
将html页面主要数据放到一个大的字符串里面
对字符串进行正则表达式的数据提取

Web操作正则表达式三步骤:
//1、创建正则表达式对象

//2、匹配正则表达式

//3、查找匹配的结果


  1. A-Z ↩︎

  2. \u4e00-\u9fa5 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值