正则---让人喜欢让人忧(1)
正则好长时间没有用了,现在用起来有点生。😄这篇就当我学习正则的笔记吧;不对的地方多多指点哟~
正则的作用:1、匹配的字符 2、校验字符串是否符合某一模式;【简单的说把我想要的字符找到😄】
正则表达式语法:
~摘自菜鸟~
正则表达式是由普通字符【打印字符和非打印字符】以及特殊字符(称为"元字符")组成的文字模式。
非打印字符:\cx 匹配有x指明的控制字符
\f 匹配一个换页符
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配任何空白字符
\S 任何非空白字符
\t 匹配一个制表符
\v 匹配一个垂直制表符
特殊字符:有特殊含义的字符。匹配这些特殊字符,用''/''转义。
$ 匹配输入字符串的结束位置
^ 匹配字符串的开始位置
[^ ] 不接受该字符集合【非,不接受】
( ) 标记一个子表达式的开始和结束位置,放的是一个子表达式
* 零次或多次
+ 子表达式一次或多次
. 匹配任何单字符(\n换行符除外)
? 零次或一次(指明一个非贪婪限定符)
\ 将下一个字符标记为为或特殊字符、或原义字符、或向后引用、或八进制转义符;"\n"匹配换行符
[] 范围表达式
{ 限定符表达式的开始
| 两项之间的一个选择
限定符:正则表达式的一个组件必须要出现多少次才能满足匹配;【组件重复次数】
* 子表达式零次或多次
+ 子表达式一次或多次
? 子表达式零次或一次 【非贪婪,最小匹配;贪婪,尽可能匹配多的】
{n} 匹配确定的n次 【n次】
{n,} 至少匹配n次 【至少多少次】
{n,m} 最少匹配n次最多匹配m次 【n,m都是非负整数】
例如:只匹配两个字符 。 /Chapter [1-9][0-9]?/ /Chapter [1-9][0-9]{0,1}/
贪婪:/<.*>/ 匹配 <h1>this is all</h1> 所有内容 【 . 除\n 之外的任意单字符】
非贪婪:/<.*?>/ 只匹配 <h1> 【加上?表示非贪婪】
只想匹配开始的<h1> /<\w+?>/
定位符:将表达式定位到行首或者行尾 ^ $ \b 字边界 \B非字边界匹配
非打印字符
特殊字符
限定符
定位符
初学的同学:http://www.runoob.com/regexp/regexp-syntax.html