正则表达式

0.链接

《正则表达式必知必会》

在线测试工具

正则表达式中符号的含义及用法

黑马视频

淘宝同学的视频

马哥的正则视频

1.初识正则表达式

1.1 正则表达式的功能

1.2 正则表达式的测试工具

2.常用正则表达式

3.正则表达式中的字符含义

字符含义
\f表示换页符相当于 \x0c 和 \cL
\n换行符,相当于\x0c和\cL
\r回车符,相当于 \x0d 和 \cM
\s匹配任意空白字符,包含空格符、制表符、换页符等,相当于 [\f\n\v\t]
\S匹配任意的非空白字符,相当于[^ \f\n\v\t]
\t表示制表符,相当于\x09 和 \cI
\v表示垂直制表符等价于\x09、cl
\b边界符,匹配单词边界
\B非单词边界的匹配
\w匹配字母、数字、下划线。等价于’[A-Za-z0-9_]’
\W匹配非字母、数字、下划线。等价于’[A-Za-z0-9_]’
\0匹配 NULL(U+0000)字符, 不要在这后面跟其它小数,因为 \0 是一个八进制转义序列
$匹配字符串的结尾位置,设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。匹配 $ 字符本身,请使用 转义符即可 \$
()标记子表达式的开始和结束位置子表达式可以获取以便以后使用
*表示匹配前面的子表达式零次或者多次,匹配* 使用转义字符 \*
+表示匹配前面的子表达式一次或者多次,匹配+使用转义字符 \+
.表示匹配除了换行符\n之外的 所有单字符 ,匹配.使用转义字符 \.
?表示匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?
[标记一个中括号的表达式开始,匹配[使用转义字符 \[
\转义字符,将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\’ 匹配 “”,而 ‘(’ 则匹配 “(”。
^表示字符串的开始位置,在使用中 []代表的是一个字符集,^只有在字符集中才是反向字符集的意思,表示否定。其余的一般都表示限定开头,要匹配^字符 使用转义字符 \^
{标记限定符表达式的开始,要匹配{字符 使用转义字符 \{
|指明两项之间的一个选择,相当于逻辑表达式中或者,要匹配|字符 使用转义字符 \|
-连字符 ,连字符包含开始值和结束值 在中括号[]中显示- 需要转义符帮忙\-
{n}n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
{n,}n 是一个非负整数。至少匹配n 次。例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。
{n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,“o{1,3}” 将匹配 “fooooood” 中的前三个 o。‘o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。
x|y匹配X或者Y
[abc]字符集合,匹配所包含的任意一个字符,例如{abc}中可以匹配"about"中的"a"和"b"
[^abc]负值字符集合。匹配未包含的任意字符。也就是说白表示否定
[a-z]字符范围。匹配指定范围内的任意字符。例如,’[a-z]’ 可以匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符。
[^a-z]字符范围。非指定范围内的任意字符。例如,’[^a-z]’ 表示不是小写字符即可
(x)匹配 ‘x’ 并且记住匹配项,就像下面的例子展示的那样。括号被称为 捕获括号。模式/(foo) (bar) \1 \2/中的 ‘(foo)’ 和 ‘(bar)’ 匹配并记住字符串 “foo bar foo bar” 中前两个单词。模式中的 \1 和 \2 匹配字符串的后两个单词。注意 \1、\2、\n 是用在正则表达式的匹配环节。在正则表达式的替换环节,则要使用像 $1、2 、 2、2、n 这样的语法,例如,‘bar foo’.replace( /(…) (…)/, ‘$2 $1’ )。
(?:x)匹配 ‘x’ 但是不记住匹配项。这种叫作非捕获括号,使得你能够定义为与正则表达式运算符一起使用的子表达式。来看示例表达式 /(?:foo){1,2}/。如果表达式是 /foo{1,2}/,{1,2}将只对 ‘foo’ 的最后一个字符 ’o‘ 生效。如果使用非捕获括号,则{1,2}会匹配整个 ‘foo’ 单词。
x(?=y)匹配’x’仅仅当’x’后面跟着’y’.这种叫做先行断言。例如,/Jack(?=Sprat)/会匹配到’Jack’仅仅当它后面跟着’Sprat’。/Jack(?=Sprat
(?<=y)x匹配’x’仅仅当’x’前面是’y’.这种叫做后行断言。例如,/(?<=Jack)Sprat/会匹配到’ Sprat ‘仅仅当它前面是’ Jack '。/(?<=Jack
x(?!y)仅仅当’x’后面不跟着’y’时匹配’x’,这被称为正向否定查找。例如,仅仅当这个数字后面没有跟小数点的时候,/\d+(?!.)/ 匹配一个数字。正则表达式/\d+(?!.)/.exec(“3.141”)匹配‘141’而不是‘3.141’
\xn 匹配n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'\x41' 匹配 "A"。'\x041' 则等价于 '\x04' & "1"。正则表达式中可以使用 ASCII 编码。
\num匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值