Chiawei的编程技术专辑

正则表达式——知识点

2019-01-02  本文已影响0人  jane819

正则表达式

正则表达式就是一个表达式,用来查找一个有指定【特点】的表达式,规则匹配的。

正则表达式定义的方式

var reg = /abc/;
var reg = new RegExp('abc');

正则表达式使用方法

reg.test(str);
str.match(reg);

特殊属性 i/g/m

g代表的是global全局匹配

i代表ignoreCase忽略大小写,

m代表multiline多行匹配,

特殊字符

具有特殊含义的字符。

\   转义字符
|   或

方括号

[abc]  查找方括号内的任意一个字符
[^abc]   查找任何不在方括号内的字符
[0-9]  查找0-9之间的数字
[a-z]  查找任何小写字母
[A-Z]  查找任何大写字母
[A-z]  查找任何字母
(red|blue|green)  查找指定字符串(子表达式)

元字符

.       查找单个字符,除了换行和行结束符。
\w      查找单词字符(匹配字母、数字、下划线。等价于'[A-Za-z0-9_]')
\W      查找非单词字符
\d      查找数字
\D      查找非数字
\s      查找空白字符 
\S      查找非空白字符
\b      查找单词边界
\B      查找非单词边界
\n      查找换行符
\f      查找换页符
\r      查找回车符
\t      查找制表符
\v      查找垂直制表符
\uxxx   查找以十六位进制数xxxx规定的Unicode字符
[\u4e00-\u9fa5] 所有中文字符

量词


以下均遵循贪婪匹配:

n+      匹配任何包含至少一个n的字符
n*      匹配任何包含0个或多个n的字符
n?      匹配任何0个或一个n的字符
n{X}    匹配X个n的序列字符串
n{X,Y}  匹配X至Y个n的序列字符串
n$      匹配以n结尾的字符串
^n      匹配任何以n开头的字符串
?=n     正向肯定预查匹配任何后面紧接着指定字符串n的字符串
?!n     正向否定预查匹配任何其后没有紧接着指定字符串n的字符串
?<=n    反向肯定预查匹配任何前面紧跟着指定字符串n的字符串
?<!n    反向否定预查匹配任何前面没有紧接着指定字符串n的字符串
非贪婪匹配:
n+?    n*? ...

补充

(?:n)   匹配时子表达式中没有这一项(不补获分组)

RegExp对象属性

global      查看RegExp对象是否具有g标志
ignoreCase  查看RegExp对象是否具有i标志
multiline   查看RegExp对象是否具有m标志
source      查看正则表达式源文本
lastIndex   一个整数标志开始下一次匹配的字符位置(一般与exec一起使用)

RegExp对象方法

compile    编译正则表达式。 (就是改变这个正则表达式)
exec       检索字符串中指定的值。返回找到的值,并确定其位置。    
test        检索字符串中指定的值。返回 true 或 false。 

字符串方法


search          检索正则表达式相匹配的值
match           查找所有符合正则匹配条件的结果
replace         替换与正则表达式匹配的字符串
split           把字符串分割成数组(注: 用字表达式分割的话会保留子表达式)

相关面试题

  1. 正则表达式实现aabb的形式变成bbaa
  2. 给10000000000三位打点 变成 10.000.000.000
  3. 字符串去重 aaaaaaaaaaaaaaaaaaaaaabbbbbbbbcccccccccc变成abc
  4. 把the-first-name转换成小驼峰式theFirstName
  5. 匹配结尾的数字
  6. 统一空格数
  7. 判断字符串是不是由数字构成
  8. 删除字符串中的空格
  9. 身份证号匹配
上一篇 下一篇

猜你喜欢

热点阅读