正则表达式
来源:互联网 发布:金融大数据对股市预测 编辑:程序博客网 时间:2024/05/19 07:07
正则表达式:字符串中字符出现的规律(验证字符串格式,查找关键字,替换关键字)
比如:银行卡查询密码:6位数字;用户名:字母,数字,_ 的组合
正则表达式:
选择符号:
[所有备选字符] (一个[ ],只能代表1位字符的选择规则)
[^XXXX]:表示除了xxxx都行,必须放在第一个位置,否则,变为普通字符匹配。
- 符号:备选字符的连续范围。如:[0-9],[a-z],[A-Z],[a-zA-Z],[\u4e00-\u9fa5](汉字)
预定义字符集:使用简化的符号,定义常用字符集。比如:[0-9]--->\d 字母,数字和下划线----->\w 空字符---->\s
如果规则正文本出现特殊符号,用“ \ “”转为原文。
“ . ”:一个任意字符。
数量词:规定前边一个字符出现次数的量词。
语法:{min,max}:从min位到max位 {num}:固定长度 {min, }:至少min个,多了不限
特殊数量词:
+:至少出现一次,不限制出现次数
*:可有可无,不限制出现次数
? :可有可无,最多只能有一位
( ):分组,改变模式的匹配顺序
比如:验证身份证号:\d{15}(\d{2}[0-9xX])?
验证手机号:(\+86)?\s*1[34578]\d{9}
验证座机号码:\d{3,4}-\d{7,8}
^:整个正则表达式的开头,表示以XXX开始
$:整个正则表达式的结尾,表示以XXX结尾
?=XXX:预判,前一个字符之后,必须紧跟XXX结尾
?!XXX:预判,前一个字符之后,不能紧跟XXX
中文姓名:[\u4e00-\u9fa5]{2,6}
邮箱:\w+@\w+([-]\w+)*(\.\w+)+
其中:\w+([-]\w+)* -----------匹配域名
一个以上的字母,后可紧跟“-字母”,可有可无
(\.\w+)+ --------------->“. 字母”组合至少出现一次
RegExp对象:专门封装一条正则表达式,提供使用正则表达式API
如何使用? 1.创建 2.调用API
创建:var regExp = /正则表达式/ig;
API:var boolean = regExp.test("被检查的字符串") (如果验证通过,返回true;否则返回false)
验证VS查找:验证要求完整匹配!查找要求不符匹配。
test方法默认:只要找到就返回true!
正则表达式前加^,后加$,实现完整匹配。表示从头到尾完整匹配。
查找:exec:查找关键字的位置,又能找到关键字的内容
indexOf:不支持正则;search:支持正则,每次只能找到一个;match:所有内容,但得不到位置!
var arr=regExp.exec("被查找的内容")
arr[0]:找到的关键字内容
arr.index属性:找到的关键字的位置
exec方法每次只能找1个,但是每次自动修改regExp对象的LastIndex属性
regExp对象的LastIndex属性,表示下次开始匹配的位置!
仅判断有没有,或者进查找位置:str.indexOf()
支持正则表达式:str.search()
仅找所有关键字的内容:str.match()
即找到位置,又找到内容:regExp.exec()
如果正则表达式会动态变化,虽然很少用。
var regExp=new RegExp("\\d{6}",g); 动态创建
强调:所有\都要改为\\
贪婪模式:.+ .* ,默认先匹配整个字符串,再缩小范围。
懒惰模式:(.+?) (.*?) ,从第一个字符开始,向后扩展范围。
从正则表达式匹配的内容中,取一部分:RegExp.$n
n:正则表达式中第n个分组,其实就是第n个圆括号
强调:分组从1开始
必须通过RegExp类型,直接调用$n,不能使用对象!
String对象与正则表达式:
str.replace(/no/ig,"替换值");
str.match(/正则表达式/ig)
str.search()
str.split(/正则表达式/)
RegExp对象总结:
var reg=/正则表达式/ig;
验证str中是否包含reg匹配的关键字: var boolean = reg.test(str);
* 强调:完整验证,都需要在正则表达式前加^后加$ *
while((arr=reg.exec(str))!=null){
arr[0];--------------->找到的一个关键
arr.index----------->当前关键字的位置
}
RegExp.$n:获得正则表达式中的第n个分组(圆括号)。
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 第三方推送过来的消息,用户点击如何处理
- 小明の魔法计划——最长上升子序列
- Kotlin-50.JavaScript反射(JavaScript Reflection)
- 面向对象编程小例子
- C++运算符重载(++,--)
- 正则表达式
- jdbc数据库链接之抽取工具类
- HRBUST 2040 二叉树的遍历
- 搭建Hadoop的Eclipse开发环境
- 打印出如下图形
- 数组丶List和ArrayList的区别
- hdu 3652 13倍数
- MySql迁移到HBase数据库(服务器)
- 1062. Talent and Virtue (25)