初探正则表达式(1)
感觉正则表达式挺重要的,一直有所耳闻,却只能copy别人的不能彻底理解。
本文基于菜鸟教程。
普通字符
包括没有显式指定为元字符的所有可打印、不可打印的字符。
匹配
中的所有字符
[^ ]
对上面取反[A-K]
选定一个字符区间,小写同理.
匹配换行符\n、\r
以外的任何字符[\s\S]
匹配所有。\s
是所有空白符包括换行
,\S
是非空白符不包括换行
\w
匹配字母、数字、下划线。等价于[A-Za-z0-9_]
\d
匹配任意阿里伯数字
非打印字符
\cx
匹配由x指明的控制字符。例如\cB
等价于Control
+ B。x只能取大小写字母\n
匹配换行\r
匹配回车
特殊字符
一般可以对这些特殊字符用\
转义,如要匹配$
可以用\$
$
匹配输入字符串的结尾位置()
标记子表达式的开始或结束*
匹配前面子表达式零次或多次+
同*
,但为一次或多次?
匹配前面子表达式零次或一次^
在外匹配字符串的开始位置,在内表示排除
{ }
标记限定符表达式|
指明两项之间的一个选择
限定符
匹配项写在表达式前面
*
等价于{0,}
,+
则是1?
等价于{0,1}
{n}
确定匹配n次{n,}
至少匹配n次{n,m}
至少n次,至多m次
*
和+
都是贪婪的,在后面加上?
可以实现非贪婪或最小匹配
如:
/<.*>/
将匹配<h1>something</h1>
一整句,而
/<.*?>/
将匹配至<h1>
评论区(暂无评论)