首页 > 代码库 > 学习正则表达式
学习正则表达式
2016.12.22,星期四
一、定义
正则表达式: 用一些特殊的字符编写具有特殊规则的字符串
注意:
1, 本身也是一个字符串,具有语法规则
2, 具有特殊意义,是处理字符串用的
3, 本身不能直接产生作用,必须需要搭配php函数使用
学习要点:
1,有哪些特殊字符
2,有什么语法规则
3,有哪些php函数
二、语法规则
定界符:正则表达式必备,是正则表达式的"家"
常用符号:/ # % | !
例:
“/正则表达式/”
"#正则表达式#"
"%正则表达式%"
1.原子:组成正则表达式的主要部分
1,普通字符:0-9 a-z A-Z 一个字符就代表了一个字符
例子:
/1/ -- "1"
/a/ -- "a"
/olizi/ -- ‘olizi‘
2,特殊字符: 需要加上转义字符来识别,本身具有特殊意义的符号,
例: "" 、‘‘、 \、 *、+、.、?、{、[、(、)、|、^、$
3,非打印字符:特殊符号,在页面上产生了如换行、空格的实际影响但是 在页面上没有显示的特殊字符。
附加:如果源代码里面出现了空格、回车、制表符等键盘上的特殊输 入,使用这些非打印字符来识别。
换页 -- \f
换行 -- \n
回车 -- \r
空白字符(空格 制表 换页) -- \s
非空白字符(除了空格 制表 换页) -- \S
水平制表 -- \t
垂直制表 -- \v
控制符号 -- \cx 栗子:ctrl+x ctrl+c
4,通用字符:
任意一个10进制数 --- \d
任意一个非10进制数的字符 --- \D
空白字符(空格 制表 换页) -- \s
非空白字符(除了空格 制表 换页) -- \S
找任意的一个字母、数字、下划线 --- \w
找任意的一个非字母、非数字、非下划线 --- \W
5,自定义字符:
1, 多个字符里面的任意一个 [多个字符]
[0-9] --- [0123456789]
[a-z] ---[abcdefghi..z]
[A-Z] ---[ABCDEFG..Z]
2, 除去多个字符里面的任意一个 [^多个字符]
3, 组团 (或者) :识别“抱团1” 或者 “抱团2”
/抱团1|抱团2/
4, 连接符: - 表示从开始到结束的一个区间
[0-9] == [0123456789]
元字符:一些具有特殊意义的字符:
a,表示次数的字符:
预定义次数:
0次或者1次:?
/a?/ aabc bc
1次或者多次:+
0次,1次或者多次:*
自定义次数:{至少, 最多}
例子:
/[abcde]{3}/ == [abcde][abcde][abcde]
b,表示开头和结尾开头
以..开头 /^字符/ /\A字符/
以..结尾 /字符$/ /字符\Z/
c, 边界符
边界内必须 \b
"/\bmy\b/":my -- "my name is"
边界外必须 \B
"/\Bis/":this -- "this is my name "
d, 其它
任意一个字符 : .
例子: abc acc adc afc a.c
"/a.c/"
E,模式修正符:位置比较特殊位于定界符外面
a)忽略大小写:i
例子: "/a/i" -- a,A
b)忽略空白:x
例子:"/ab/x" --"a b"
学习正则表达式