PHP正则表达式二徐枭雄课堂笔记

合集下载

php最完整正则表达式,后附小结最常用正则表达式

php最完整正则表达式,后附小结最常用正则表达式

采集一个网页上的电子邮件
比如,我们想要采集一个网页上的电子邮件,那么,什么样的数据才算是一个合法的电子邮件呢?我可以这样输入:youname@,当然我也会这样输入:xxx@,但是这样的输入就是非法的:xxx@@或者@,等等,所以我们得出一个合法的电子邮件地址至少应当满足以下几个条件:
我的回答是:
^[a-zA-Z]$|^\d+$
"^\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\d+$" //整数
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
今天有网友问:如何用正则表达式表示要么是数字要么是字母 是字母的话只能是一个字母 数字则无所谓?
[xyz] :一个字符集。与括号中字符的其中之一匹配。例如,"[abc]" 匹配"plain"中的"a"。
[^xyz] :一个否定的字符集。匹配不在此括号中的任何字符。例如,"[^abc]" 可以匹配"plain"中的"p".

php中正则表达式详解

php中正则表达式详解

php中正则表达式详解概述正则表达式是⼀种描述字符串结果的语法规则,是⼀个特定的格式化模式,可以匹配、替换、截取匹配的字符串。

常⽤的语⾔基本上都有正则表达式,如JavaScript、java等。

其实,只有了解⼀种语⾔的正则使⽤,其他语⾔的正则使⽤起来,就相对简单些。

⽂本主要围绕解决下⾯问题展开。

有哪些常⽤的转义字符什么是限定符与定位符什么是单词定位符特殊字符有哪些什么是逆向引⽤以及怎样使⽤逆向引⽤匹配模式php中怎样使⽤正则表达式php中哪些⽅⾯需要⽤到正则怎样进⾏邮箱匹配,url匹配,⼿机匹配怎样使⽤正则替换字符串中某些字符贪婪匹配与惰性匹配区别正则表达式之回溯与固态分组正则优缺点有哪些正则表达式的基本知识汇总⾏定位符(^与$)⾏定位符是⽤来描述字符串的边界。

“$”表⽰⾏结尾“^”表⽰⾏开始如"^de",表⽰以de开头的字符串"de$",表⽰以de结尾的字符串。

单词定界符我们在查找的⼀个单词的时候,如an是否在⼀个字符串”gril and body”中存在,很明显如果匹配的话,an肯定是可以匹配字符串“gril and body”匹配到,怎样才能让其匹配单词,⽽不是单词的⼀部分呢?这时候,我们可以是哟个单词定界符\b。

\ban\b 去匹配”gril and body”的话,就会提⽰匹配不到。

当然还有⼀个⼤写的\B,它的意思,和\b正好相反,它匹配的字符串不能使⼀个完整的单词,⽽是其他单词或字符串中的⼀部分。

如\Ban\B。

选择字符(|) ,表⽰或选择字符表⽰或的意思。

如Aa|aA,表⽰Aa或者是aA的意思。

注意使⽤”[]”与”|”的区别,在于”[]”只能匹配单个字符,⽽”|”可以匹配任意长度的字符串。

在使⽤”[]”的时候,往往配合连接字符”-“⼀起使⽤,如[a-d],代表a或b或c或d。

排除字符,排除操作正则表达式提供了”^”来表⽰排除不符合的字符,^⼀般放在[]中。

PHP常用正则

PHP常用正则
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
(1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
只能输入非零的负整数:“^-[1-9][0-9]*$”
只能输入长度为3的字符:“^.{3}$”
只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”
只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”
只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”
正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,
“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
验证身份证号(15位或18位数字):“^d{15}|d{}18$”
验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”

PHP知识点(3)-正则

PHP知识点(3)-正则

PHP知识点(3)-正则组成:定界符//原⼦元字符模式修正符⼀、原⼦每个模式中⾄少要包含⼀个原⼦普通的原⼦:0-9 a-z A-Z⼀些特殊符号和元字符作为原⼦:需要转义,如. * + ?等⼀些⾮打印字符:\n \f \r \t \v \cx通⽤字符类型:\d \D \s \S \w \W⾃字义原⼦表:[],从原⼦表中只能选择⼀个原⼦进⾏匹配⼆、元字符*+.|{n}{n,}{n,m}^或\A$或\Z\b单词的边界\B⾮单词边界[][^]()注意点:1、“.”通常可以使⽤“.*?”或“.+?”组合来匹配除换⾏符以外的任何字符串,取消贪婪模式2、后向引⽤,使⽤原字符()标记的开始和结束,存储匹配的缓冲区编号从1开始,连续编号直⾄99。

每个缓冲区都可以使⽤\n来访问,其中n 为⼀个标识特定缓冲区的⼀位或两位⼗进制数。

如\1,\2,\3等形式,在正则中使⽤还需要加上\转义,例如:\\1,\\2。

当需要使⽤模式单元,⽽⼜不想存储匹配结果时,可以使⽤⾮捕获元字符,“?:”,"?=","?!",来忽略对匹配结果的保存。

三、模式修正符i:不区分⼤⼩写m:将字符串视为多⾏s:如果加上此字符,模式中的原点”.“匹配所有字符,包括换⾏符\fx:模式中的空⽩忽略不计,除⾮它已经被转义e:只⽤在preg_replace 中,该函数在逆向引⽤做正常替换,将其作为PHP代码求值,并⽤其结果来替换所搜索的字符串,见细说PHP第307页例。

U:不要和.*?⼀起使⽤,否则会再次启⽤贪婪模式D:加上此修饰符后,模式中的$仅匹配结尾,如果加上m多⾏模式,则忽略此选项。

与Perl兼容的正则函数字符串的匹配与查找:1、int preg_match(pattern,subject[ ,array matchs])按指定的正则表达式,对字符串进⾏搜索和匹配⼀次,第⼀个参数是正则,第⼆个参数是字符串,第三个参数是匹配的结果放到这个数组中,最终返回结果是0或12、int preg_match_all(pattern,subject,array matchs[ ,int flags]),按照指定的正则匹配到字符串的末尾,可以获得所有的匹配结果,前三个参数同上,第四个参数有以下两个值:PREG_PATTERN_ORDER:默认,对结果排序使⽤$matchs[0]为全部模式匹配的数组,$matchs[1]为第⼀个括号中的⼦模式所匹配的字符串组成的数组。

php正则表达式函数使用2

php正则表达式函数使用2
PREG_SPLIT_NO_EMPTY preg_split()只能返回非空的成分。
PREG_SPLIT_DELIM_CAPTURE 定界符模式中得括号表达式也会被捕捉返回。
PREG_SPLIT_OFFSET_CAPTURE对每个出现的匹配结果也同时返回其附属的字符串偏移量。
字符串处理函数
preg_replace_callback()
preg_prelace(模式,字符串,替换字符串,可选参数替换次数)字符串查找替换,此函数有一个专门为他提供的修正模式“e”,也只有preg_replace()函数使用此修正符,如果设置此修正符,函数在替换字符串的时间将对字符串中逆向引用做正常的替换,将其作为php代码求值。并用做其结果来替换所搜索的字符串。要确保第二个参数构成一个合法的php代码字符串,否则报告中包含preg_replace()的行中出现的语法解析错误。
preg_split()字符串分割,本函数返回第一个字符串数组,数组元素包含通过第二个参数subject中得字符串,井底个参数的正则表达式pattern,作为匹配费边界分隔的字符串,如果第三个参数limit,则最多返回limit个字符串。而其最后一个元素包含了subject中剩余的所有部分。乳沟limit为-1,则意味着没有限制。还可以用来继续只等第四个可选参数flags,其中flags可以是下了标记的任意组合。
preg_match_all()
此函数与perg_match函数相似不同的是perg_match函数在第一次匹配之后就会停止搜索,而parg_match_all则不会,他会一直匹配到字符串的结尾才结束搜索。
preg_quote()
$str="ab+cd=ef{g";

正则表达式知识点记录与学习思考

正则表达式知识点记录与学习思考

正则表达式学习总结、知识点记录正则表达式(Regular Expression),它是用一个“字符串”定义一种“模式”,然后把它应用到另一个“字符串”中用以寻找是否有与此“模式”相匹配的字符。

应用原则和你需要知道的:1、清楚的了解目标文本是正确使用RE的根本前提。

也就是说,从已知文本中提取数据与从随机文本中提取数据根本不是一回事。

2、如果某个RE基本不可能匹配到不期望的结果,使用它就是合理的。

3、RE的构建复杂度取决于你想要得到多么精准的结果,什么是最合适的解决方案取决于你可以接受的精确度、效率、对错误的容忍程度。

4、平衡法则(好的RE必须在以下方面求得平衡):1.只匹配期望的文本,排除不期望的。

2.易于控制和理解。

3.保证效率。

如果能够匹配必须很快的返回结果;如果不能应在尽可能短的时间内报告失败。

5、别忘了时常想想匹配失败的情形。

6、验证某个模式能不能获得预期的匹配结果并不困难,但如何验证它不会匹配到你不想要的东西可就没那么简单了。

也就是说把不需要匹配的情况也考虑周全并确保它们都将被排除在外往往十分困难。

7、不应该忘记考虑这样的“特殊”情形,针对“糟糕”的数据,RE不应该能够匹配。

引擎构造与基本工作机制:字符、元字符、字符组、量词、括号的组合方式决定了引擎的特性。

有两种类型的引擎:文本导向(text-directed)的DFA引擎和正则导向(regex-directed)的NFA引擎。

它们全称是:确定型有穷自动机、非确定型有穷自动机。

其中NFA又分为:传统型NFA和POSIX NFA。

本文总结的是传统NFA的引擎。

这是因为一些非常有用的特性,如:回溯(backtrack)、捕获括号(capture brace)、环视(look around)、忽略优先量词(lazy quantifiers)、反向引用(back references)、占有优先量词(possessive quantifiers)、固化分组(atomic group),只能在正则导向的引擎中实现。

正则表达式学习笔记

正则表达式学习笔记

正则表达式概要笔记个人学习时记下的笔记,包含主要的正则表达式语法,适合正则表达学习和复习,有需要的下载下。

//---正则表达式界定符,声明正则表达式的边界,正则表达式写在边界之中。

\ ---转义字符,如果要匹配的正则表达中有对和关键字相同的字符进行转义[]---匹配括号中任何一个字符,和逻辑运算符“或”相似(括号中只能写原子或原子的集合),可以使用‘|’‘-’如运算符[a-z|A-Z]表示匹配任意一个英文字母,如[a-z0-9]表示匹配任意一个英文字母或数字。

|----匹配两个或多个分支选择,两边必须是连续的多个原子,两边连续的子串做整体匹配[^]--匹配方括号中原子之外的任意原子,和[]互逆;^必须放最左边;原子-正则表达式最小匹配单位,Unicode编码的最小单位,有可见原子和不可见原子(空格'',换行'\r',tab'\t',回车'\n'为不可见原子)原子集合--------------------------------------------------------------.----匹配换行符之外的任意字符\d---匹配任意一个十进制数字\D---匹配任意一个非十进制数字,与\d互补\s---匹配一个不可见原子\S---匹配一个可见原子\w---匹配任意一个数字字母下划线\W---匹配任意一个非数字字母下划线;量词----------------------------------------------------------------------可以匹配原子和原子集合{n}--前面元素匹配n次{n,m}匹配最少n次,最多m次{n,}-前面最少出现n次*----匹配0,1,或多次+----最少出现一次?---匹配0,1次边界控制--------------------------------------------------------------^----匹配字符串开始的位置$----匹配字符串结尾的位置模式单元----------------------------------------------------()-匹配其中的整体作为一个原子修正模式--------------------------------------------------------------/末尾加模式修正标志,默认是贪婪模式;多模式可以并写;U----懒惰模式i----忽略英文大小写x----忽略空白,包括制表符,tab等s----让元字符.匹配包括换行符在内所有字符。

PHP常用正则表达式汇总

PHP常用正则表达式汇总

PHP常⽤正则表达式汇总1. 平时做⽹站经常要⽤正则表达式,下⾯是⼀些讲解和例⼦,仅供⼤家参考和修改使⽤:2. "^\d+$" //⾮负整数(正整数 + 0)3. "^[0-9]*[1-9][0-9]*$" //正整数4. "^((-\d+)|(0+))$" //⾮正整数(负整数 + 0)5. "^-[0-9]*[1-9][0-9]*$" //负整数6. "^-?\d+$" //整数7. "^\d+(\.\d+)?$" //⾮负浮点数(正浮点数 + 0)8. "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数9. "^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //⾮正浮点数(负浮点数 + 0)10. "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数11. "^(-?\d+)(\.\d+)?$" //浮点数12. "^[A-Za-z]+$" //由26个英⽂字母组成的字符串13. "^[A-Z]+$" //由26个英⽂字母的⼤写组成的字符串14. "^[a-z]+$" //由26个英⽂字母的⼩写组成的字符串15. "^[A-Za-z0-9]+$" //由数字和26个英⽂字母组成的字符串16. "^\w+$" //由数字、26个英⽂字母或者下划线组成的字符串17. "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址18. "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url19. /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-⽉-⽇20. /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // ⽉/⽇/年21. "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil22. /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/ //电话号码23. "^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址24.25. 匹配中⽂字符的正则表达式: [\u4e00-\u9fa5]26. 匹配双字节字符(包括汉字在内):[^\x00-\xff]27. 匹配空⾏的正则表达式:\n[\s| ]*\r28. 匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/29. 匹配⾸尾空格的正则表达式:(^\s*)|(\s*$)30. 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*31. 匹配⽹址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$32. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$33. 匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?34. 匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$35.36.37. 元字符及其在正则表达式上下⽂中的⾏为:38.39. \ 将下⼀个字符标记为⼀个特殊字符、或⼀个原义字符、或⼀个后向引⽤、或⼀个⼋进制转义符。

php正则表达式的基本语法总结

php正则表达式的基本语法总结

php正则表达式的基本语法总结php正则表达式的基本语法总结php正则表达式的基本语法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有帮助!首先,让我们看看两个特别的字符:'^' 和‘$' 他们是分别用来匹配字符串的开始和结束,一下分别举例说明"^The": 匹配以 "The"开头的字符串;"of despair$": 匹配以 "of despair" 结尾的字符串;"^abc$": 匹配以abc开头和以abc结尾的字符a串,实际上是只有abc与之匹配"notice": 匹配包含notice的字符串你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说模式(正则表达式)可以出现在被检验字符串的任何地方,你没有把他锁定到两边这里还有几个字符'*', '+',和'?', 他们用来表示一个字符可以出现的次数或者顺序. 他们分别表示:"zero or more", "one or more", and "zero or one." 这里是一些例子:"ab*": 匹配字符串a和0个或者更多b组成的字符串("a", "ab", "abbb", etc.);"ab+": 和上面一样,但最少有一个b ("ab", "abbb", etc.);"ab?":匹配0个或者一个b;"a?b+$": 匹配以一个或者0个a再加上一个以上的b结尾的字符串.你也可以在大括号里面限制字符出现的个数,比如"ab{2}": 匹配一个a后面跟两个b(一个也不能少)("abb");"ab{2,}": 最少更两个b("abb", "abbbb", etc.);"ab{3,5}": 2-5个b("abbb", "abbbb", or "abbbbb").你还要注意到你必须总是指定 (i.e, "{0,2}", not "{,2}").同样,你必须注意到, '*', '+', 和'?' 分别和一下三个范围标注是一样的,"{0,}","{1,}", 和 "{0,1}"。

非常重要的php正则表达式详解

非常重要的php正则表达式详解

⾮常重要的php正则表达式详解正则表达式是php中⼀个⾮常重要的知识点,通常⽤来查找和替换字符串,最常⽤的就是验证⽤户输⼊的信息格式是否正确,如邮件格式、电话格式等等。

还有⽐如采集器之类的软件中,正则也是必⽤不可!现在开始来学习正则表达式的基本语法:1.“/”是定界符,“/”定界符之间的部分就是将要在⽬标对象中进⾏匹配的模式。

同时为了正则更加灵活,引⼊了元字符,即“+”,“*”,以及 “?”。

(1)“+”元字符规定其前导字符必须在⽬标对象中连续出现⼀次或多次⽐如:/php+/,能够与“phpp”匹配,即字母ph后⾯连续出现⼀个或多个字母p的字符串相匹配。

(2)“*”元字符规定其前导字符必须在⽬标对象中出现零次或连续多次⽐如:/php*/能够与“phpddt”相匹配,即ph后⾯可以有0个或多个p(3)“?”元字符规定其前导对象必须在⽬标对象中连续出现零次或⼀次。

⽐如:/php?/能够“pher”匹配,即phh后⾯可以有0个或者1个p其他重要的元字符:\s:⽤于匹配单个空格符,包括tab键和换⾏符;\S:⽤于匹配除单个空格符之外的所有字符;\d:⽤于匹配从0到9的数字;\w:⽤于匹配字母,数字或下划线字符;\W:⽤于匹配所有与\w不匹配的字符;. :⽤于匹配除换⾏符之外的所有字符。

⽰例:/\s+/⽤于匹配⽬标对象中的⼀个或多个空格字符2.定位符⽤于规定匹配模式在⽬标对象中的出现位置。

常⽤的有“^”, “$”, “\b” 以及 “\B”(1)“^”定位符规定匹配模式必须出现在⽬标字符串的开头(2)“$”定位符规定匹配模式必须出现在⽬标对象的结尾(3)\b定位符规定匹配模式必须出现在⽬标字符串的开头或结尾的两个边界之⼀(4)“\B”定位符则规定匹配对象必须位于⽬标字符串的开头和结尾两个边界之内3.php的正则匹配模式⾮常灵活,可以指定某⼀范围例如:/[A-Z]/上述正则表达式将会与从A到Z范围内任何⼀个⼤写字母相匹配。

php正则表达式使用详解

php正则表达式使用详解

php正则‎表达式使用‎详解关键‎词: ph‎p‎r egul‎a r ‎expr‎e ssio‎n s ‎‎‎‎‎‎‎‎‎‎如果我们‎问那些UN‎I X系统的‎爱好者他们‎最喜欢什么‎,答案除了‎稳定的系统‎和可以远程‎启动之外,‎十有八九的‎人会提到正‎则表达式;‎如果我们再‎问他们最头‎痛的是什么‎,可能除了‎复杂的进程‎控制和安装‎过程之外,‎还会是正则‎表达式。

那‎么正则表达‎式到底是什‎么?如何才‎能真正的掌‎握正则表达‎式并正确的‎加以灵活运‎用?本文将‎就此展开介‎绍,希望能‎够对那些渴‎望了解和掌‎握正则表达‎式的读者有‎所助益。

‎入门简‎介‎简单的说,‎正则表达式‎是一种可以‎用于模式匹‎配和替换的‎强有力的工‎具。

我们可‎以在几乎所‎有的基于U‎N IX系统‎的工具中找‎到正则表达‎式的身影,‎例如,vi‎编辑器,P‎e rl或P‎H P脚本语‎言,以及a‎w k或se‎d she‎l l程序等‎。

此外,象‎J avaS‎c ript‎这种客户端‎的脚本语言‎也提供了对‎正则表达式‎的支持。

由‎此可见,正‎则表达式已‎经超出了某‎种语言或某‎个系统的局‎限,成为人‎们广为接受‎的概念和功‎能。

‎正则表达‎式可以让用‎户通过使用‎一系列的特‎殊字符构建‎匹配模式,‎然后把匹配‎模式与数据‎文件、程序‎输入以及W‎E B页面的‎表单输入等‎目标对象进‎行比较,根‎据比较对象‎中是否包含‎匹配模式,‎执行相应的‎程序。

‎举例来‎说,正则表‎达式的一个‎最为普遍的‎应用就是用‎于验证用户‎在线输入的‎邮件地址的‎格式是否正‎确。

如果通‎过正则表达‎式验证用户‎邮件地址的‎格式正确,‎用户所填写‎的表单信息‎将会被正常‎处理;反之‎,如果用户‎输入的邮件‎地址与正则‎表达的模式‎不匹配,将‎会弹出提示‎信息,要求‎用户重新输‎入正确的邮‎件地址。

由‎此可见正则‎表达式在W‎E B应用的‎逻辑判断中‎具有举足轻‎重的作用。

php正则表达式教程

php正则表达式教程

php正则表达式教程PHP正则表达式是一种强大的文本处理工具,可以帮助我们在字符串中查找、匹配和替换特定的模式。

它是基于正则表达式语法的规则来操作字符串,具有很高的灵活性和表达能力。

在本教程中,我们将学习PHP正则表达式的基本语法和常用函数,帮助你快速入门和掌握这个强大的工具。

1. 正则表达式的基本语法:在PHP中,正则表达式以斜杠(/)包围,使用特定的字符来表示模式。

例如,使用“/abc/”表示匹配包含“abc”字符序列的模式。

2. 字符匹配:在正则表达式中,我们可以使用特定的字符来匹配其他字符。

例如,使用“.”表示匹配任意字符,使用“\d”表示匹配数字字符,使用“\w”表示匹配字母、数字和下划线字符,使用“\s”表示匹配空白字符等。

3. 重复匹配:通过使用特定的重复限定符,我们可以指示匹配的字符重复出现的次数。

例如,使用“*”表示匹配0次或更多次,使用“+”表示匹配1次或更多次,使用“?”表示匹配0次或1次,使用“{n}”表示匹配n次,使用“{n,}”表示匹配至少n次,使用“{n,m}”表示匹配至少n次、最多m次。

4. 字符类:使用方括号([])表示一个字符类,可以指定匹配的字符范围。

例如,“[abc]”表示匹配字符a、b或c中的任意一个,“[a-z]”表示匹配任意小写字母。

5. 转义字符:有些字符在正则表达式中具有特殊意义,如果我们需要匹配这些特殊字符本身,需要使用反斜杠(\)进行转义。

例如,使用“\.”来匹配句号。

6. 定位符:使用定位符可以指定匹配的位置。

例如,使用“^”表示匹配字符串的起始位置,使用“$”表示匹配字符串的结束位置。

7. 常用函数:PHP提供了一些内置函数来支持正则表达式的操作,比如preg_match()、preg_match_all()、preg_replace()等。

- preg_match()函数用于在字符串中查找第一个匹配的模式,并返回匹配结果。

- preg_match_all()函数用于在字符串中查找所有匹配的模式,并返回匹配结果。

PHP正则表达式徐枭雄课堂笔记

PHP正则表达式徐枭雄课堂笔记

正则表达式1.什么是正则表达式a)例子:’/<img\s+src=\”.*?\”\s+\/>/’;这就是正则表达式b)乱七八糟的一堆字符堆砌在一起,神秘的符号,有着奇特的意义2.和正则表达式相识的事物?a)乱/看不懂/神秘/意义医生的字只有医院的人能看懂道士的符只有道士明白女人的心只有女人能懂正则表达式只有程序员能看懂(所有的高级语言中都有正则表达式)3.学习正则表达式可以做什么、a)操作字符串时正则表达式的唯一作用验证用户名长度是否合法验证密码是否符合标准验证手机号验证URL地址验证邮箱BBS编辑器Qq聊天表情新闻采集器小偷程序4.看看正则表达式的一些特点a)1.正则表达式也是一个字符串b)2.由特殊意义的字符组成的字符串c) 3.具有一定的编写规则,也是一种模式d)4.看做是一种编程语言因为是用一些特殊字,按照规则编写出来的字符串,形成一种模式-正则表达式。

注意:如果正则表达式,不和函数一起使用,则他就是一个普通的字符串而已。

如果把正则表达式放入到函数中一起使用,才能发挥出正则表达式的作用。

比如:将正则表达式放入到分分隔函数,哪可以用这个正则表达式去分隔字符串。

总结:正则弊端是就是通过构建具有特定规则的模式了,在于输入的字符串信息进行比较,分隔,查找,替换等工作。

在实际应用中记住一点:能使用字符串处理函数来完成的就不要使用正则表达式来完成。

愿意:效率低。

5.PHP中提供了两套正则表达式函数库a)Posix 扩展正则表达式函数-》eregb)Perl 兼容正则表达式函数->preg(两套函数库功能一样,但是perl效率高,所以官方推荐使用perl)6.学习正则表达式时,有两方面学习a)1.正则表达式的模式如何编写b)2.学习正则表达式的强大处理函数7.正则表达式的语法(分4部)a)1.正则定界符b)2.正则表达式中的原子c) 3.正则表达式中的元字符(原子修正符)d)4.正则表达式的模式修正符8.正则表达式的定界符a)正则表达式的定界符是用来声明正则表达式的边界符号。

兄弟连PHP教程-PHP课程笔记-徐枭雄-Lamp网站构建

兄弟连PHP教程-PHP课程笔记-徐枭雄-Lamp网站构建

兄弟连PHP教程-PHP课程笔记-徐枭雄- Lamp网站构建我的风格:不喜欢死板的教学,生活中的例子是必须有的不喜欢课堂的沉闷,我们的互动也是时时的。

别让我当天津的名牌----->狗不理普通版本文艺版本XX版本暴虐成性,十分残忍,六亲不认作业变态多@配套源码联系QQ:328258258Lamp网站构建介绍网站给你认识。

网路系统软件开发包括B/S与C/S两种结构都可以进行同样的业务处理C/S client(客户端) / server(服务器)特点:C/S软件通常需要特定的客户端来使用。

可以通过任意的协议进行通信。

3.C/S软件的客户端有数据处理和存储的能力,把应用软件的计算和数据分配在客户端和服务器端。

协议:实际上就是一种约定,在C/S软件中就是任意的约定都可以进行通信。

B/S browser(浏览器) / server(服务器)1.B/S软件不需要特定的客户端。

他和服务器端进行通信使用HTTP协议。

2.它将所有的数据都存在服务器上。

B/S软件的优缺点B/S结构维护,升级更方便。

,不用像C/S结构软件三天两头提示升级,如果想升级只需要在服务器端进行操作升级就可以了。

B/S结构不需要指定的客户端。

成本低,不用开发特定的客户端。

数据相对安全,因为已经存在服务器上了。

缺点:应用服务器运行数据负荷较重动态网站的介绍网站的功能已经彻底改革,从静态内容的展示转向到动态内容的传递静态网站:用户只能在网页上浏览,不能做任何数据行的交换动态网站采用了数据库的开发模式动态网站一般以数据库技术为基础,可以大大降低网站维护的工作量。

其功能可以实现:注册登录,在线调查,用户管理,订单管理等等。

目前比较流行的WEB技术:PHP JAVAEEHTTP协议1.什么是HTTP协议超文本传输协议。

什么是超文本不仅可以传输文本还可以传输声音,动画,连接啊,媒体等等。

设计HTTP协议最初的目的就是为了提供一种发布和接收HTML页面的方法是互联网应用最为广泛的一种网络协议。

PHP常用的正则表达式是什么

PHP常用的正则表达式是什么

PHP常用的正则表达式是什么PHP常用的正则表达式是什么正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。

常用的语言基本上都有正则表达式。

以下是店铺为大家搜索整理的PHP常用的正则表达式是什么,希望能给大家带来帮助!更多经常内容请及时关注我们店铺!一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$有两位小数的正实数:^[0-9]+(.[0-9]{2})?$有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$非零的正整数:^[1-9]\d*$ 或^([1-9][0-9]*){1,3}$ 或^\+?[1-9][0-9]*$非零的负整数:^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$非负整数:^\d+$ 或 ^[1-9]\d*|0$非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$非负浮点数:^\d+(\.\d+)?$ 或^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$浮点数:^(-?\d+)(\.\d+)?$ 或^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$二、校验字符的表达式汉字:^[\u4e00-\u9fa5]{0,}$英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$长度为3-20的所有字符:^.{3,20}$由26个英文字母组成的字符串:^[A-Za-z]+$由26个大写英文字母组成的字符串:^[A-Z]+$由26个小写英文字母组成的字符串:^[a-z]+$由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或^\w{3,20}$中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$可以输入含有^%&',;=?$\”等字符:[^%&',;=?$\x22]+禁止输入含有~的字符:[^~\x22]+三、特殊需求表达式Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?InternetURL:[a-zA-z]+://[^\s]* 或^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$ 电话号码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^($$\d{3,4}-)|\d{3.4}-)?\d{7,8}$国内电话号码*************、************):\d{3}-\d{8}|\d{4}-\d{7}身份证号(15位、18位数字):^\d{15}|\d{18}$短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 日期格式:^\d{4}-\d{1,2}-\d{1,2}一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$钱的输入格式:有四种钱的表示形式我们可以接受:”10000.00″ 和“10,000.00″, 和没有“分” 的“10000″ 和“10,000″:^[1-9][0-9]*$ 这表示任意一个不以0开头的.数字,但是,这也意味着一个字符”0″不通过,所以我们采用下面的形式:^(0|[1-9][0-9]*)$ 一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:^(0|-?[1-9][0-9]*)$这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分:^[0-9]+(.[0-9]+)?$必须说明的是,小数点后面至少应该有1位数,所以”10.”是不通过的,但是“10″ 和“10.2″ 是通过的:^[0-9]+(.[0-9]{2})?$ 这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$这样就允许用户只写一位小数。

PHP正则表达式笔记和实例

PHP正则表达式笔记和实例

PHP正则表达式笔记和实例本⽂主要介绍如何在PHP使⽤正则表达式,并附带⼏个实例.这两天⼯作⽤到了正则表达式,发现⾃⼰已经忘记的差不多了,囧啊!找来以前的学习笔记,好好看了⼀下,⼜巩固了这些知识,⼯作算是完成了,不过正则要学的东西还是蛮多的,以下是整理的以前的笔记和⼀些实例!⽬录:笔记⼀、正则表达式的介绍:⼆、语法:三、正则表达式的组成部分:四、正则表达式的函数:实例1.正则表达式匹配2.正则的元字符匹配3.正则表达式匹配⽹页4正则的其他函数使⽤5.⼦存储(扩展)笔记:⼀、正则表达式的介绍:正则表达式是⽤于描述字符排列和匹配模式的⼀种语法规则。

它主要⽤于字符串的模式分割、匹配、查找及替换操作。

1. ⽤途:匹配、查找、替换、分割2. php提供了两套正则表达式函数库*1. Perl 兼容正则表达式函数(推荐使⽤)2. POSIX 扩展正则表达式函数⼆、语法:1. 表达式的格式: "/表达式/[修正符]"解释:其中"/"表⽰正则表达式的定界符,但是也可以是其他符号:如”#“,”!“注意:定界符不可以是字母、数字和斜线\。

像“#”、“|”、“!”等都可以的如:/.../ #...# |....|其中修正符是可选的,表⽰对表达式做额外的修饰。

三、正则表达式的组成部分:1. 原⼦是组成正则表达式的基本单位,在分析正则表达式时,应作为⼀个整体。

原⼦包括以下内容:> 单个字符、数字,如a-z,A-Z,0-9。

> 模式单元,如(ABC)可以理解为由多个原⼦组成的⼤的原⼦。

> 原⼦表,如 [ABC]。

> 重新使⽤的模式单元,如:\\1> 普通转义字符,如:\d, \D, \w> 转义元字符,如:\*,\.> 元字符*2. 元字符(具有特殊意义字符):[] 表⽰单个字符的原⼦表例如:[aoeiu] 表⽰任意⼀个元⾳字母[0-9] 表⽰任意⼀位数字[a-z][0-9]表⽰⼩写字和⼀位数字构成的两位字符[a-zA-Z0-9] 表⽰任意⼀位⼤⼩字母或数字[^] 表⽰除中括号内原⼦之外的任何字符是[]的取反例如:[^0-9] 表⽰任意⼀位⾮数字字符[^a-z] 表⽰任意⼀位⾮⼩写字母{m} 表⽰对前⾯原⼦的数量控制,表⽰是m次例如:[0-9]{4} 表⽰4为数字[1][3-8][0-9]{9} ⼿机号码{m,} 表⽰对前⾯原⼦的数量控制,表⽰是⾄少m次例如: [0-9]{2,} 表⽰两位及以上的数字{m,n}表⽰对前⾯原⼦的数量控制,表⽰是m到n次例如: [a-z]{6,8} 表⽰6到8位的⼩写字母* 表⽰对前⾯原⼦的数量控制,表⽰是任意次,等价于{0,}+ 表⽰对前⾯原⼦的数量控制,表⽰⾄少1次,等价于{1,}表⽰对前⾯原⼦的数量控制,表⽰0次或1次(可有可⽆)等价于{0,1}例如:正整数:[1-9][0-9]*整数:[\-]?[0-9]+email:() 表⽰⼀个整体原⼦,【还有⼀个⼦存储单元的作⽤】。

PHP学习笔记--php教科书上关于正则表达式实例代码(摘要)

PHP学习笔记--php教科书上关于正则表达式实例代码(摘要)

PHP学习笔记--php教科书上关于正则表达式实例代码(摘要)<?php/*posix扩展正则表达式函数*//*---------------------------------------------------*/$ereg = '^[$][[:alpha:]_][[:alnum:]]*';ereg($ereg,'$_name',$register); //匹配并且存放数组 //eregi()不分⼤⼩写var_dump($register); //显⽰数组结构/*---------------------------------------------------*/$ereg = 'tm';$str = 'hello,tm,Tm,tM';$rep_str=eregi_replace($ereg,'TM',$str); //匹配成功的都⽤TM替换 ereg_replace() 分⼤⼩写echo$rep_str;/*---------------------------------------------------*/$ereg = 'is';$str = 'This is a register book.';$arr_str = spliti($ereg,$str); //分割字符串。

按正则匹配 split() 分⼤⼩写var_dump($arr_str);/*pcre兼容正则表达式函数 --⽆论从效率或者语法上pcre都略优于posix*//*---------------------------------------------------*/$preg = '/\d{3,4}-?\d{7,8}/';$arr = array('0432********','0431-*******','12345678'); //包含元素数组$preg_arr = preg_grep($preg,$arr);var_dump($preg_arr);/*---------------------------------------------------*/$str = 'This is an example!';$preg = '/\b\w{2}\b/';$num1 = preg_match($preg,$str,$str1); //匹配并返回成功个数,把匹配成功的放⼊数组成功后,就停⽌echo$num1."<br />";var_dump($str1);echo "<br />";//匹配并返回成功个数,把匹配成功的放⼊数组成功后,不停⽌,直到匹配所有字符结束$num2 = preg_match_all($preg,$str,$str2);echo$num2."<br />";var_dump($str2);/*---------------------------------------------------*/$str = '!、$、^、*、+、.、[、]、\\、/、b、<、>';$str2='b';//⾃动将正则特殊字符进⾏转义,如果有参数,字符中含参数字符也会被转义$match_one = preg_quote($str,$str2);echo$match_one;/*---------------------------------------------------*/$string = '[b]粗体字[/b]';//匹配并替换⽤了反向引⽤$b_rst = preg_replace('/\[b\](.*)\[\/b\]/i','<b>$1</b>',$string);echo$b_rst;/*---------------------------------------------------*/function c_back($str){//反向引⽤$str = "<font color=$str[1]>$str[2]</font>";return$str;}$string = '[color=blue]字体蓝⾊[/color]';//preg_replace_callback函数中要替换的字符,换成了回调函数⽽已和 preg_replace差不多echo preg_replace_callback('/\[color=(.*)\](.*)\[\/color\]/U',"c_back",$string);/*---------------------------------------------------*///此函数书上没有,我⾃⼰写的⽰例给⼤家!$preg = "/\s+/"; //这⾥也可以换成 "/\s{1,}/";$str = "I'm Chinese! I can eat";$arr = preg_split($preg,$str); //查找并拆分。

徐枭雄php运算符属性

徐枭雄php运算符属性

运算符
1.什么是运算符
a)+ - * / 等等用于运算的符号就是运算符。

2.那什么是运算呢?
a)由一个数值或多个数值经过变换得到一个新值的过程
就是运算。

3.运算的分类
a)算术运算
b)字符串运算
c)赋值运算
d)比较运算
e)逻辑运算
f)位运算
g)其他运算
4.算术运算
a)算数运算符包括+(加法)-(减法)*(乘法)/(除
法) %(取余或求模)++(自增)--(自减)
自增自减运算注意事项
1.自增或者自减运算就是在原值的基础上进行+1或者-1
操作
2.在进行自增自减运算时,运算符号可以在变量前,也可
以在变量后,但是意义不同。

3.如果自增自减运算符号在变量前,表示先将当前变量进
行+1操作后,在使用该变量。

如果符号在变量后,表示先使用当前变量然后在进行自增或自减运算。

4.自增自减运算对布尔值无效,一般也不用于数组,对象,
资源等类型,只用于整型和浮点型
作业:课堂代码三遍。

整理笔记。

预习:运算符流程控制。

PHP高级工程师之正则表达式

PHP高级工程师之正则表达式

2011-2016 v5.0
• • JavaScript PHP ASP JAVA Perl Python Visual Basic MYSQL C# .NET ColdFusion LINUX VI
后盾网 人人做后盾
• , • • // , , (/), hash js (#) (~)
示例: • $str ="1.jpg@2.jpg@3.jpg#4.jpg"; • $preg="/[@#]/"; • $arr = preg_split($preg,$str); • print_r($arr);
后盾网 人人做后盾
• 如果一次要匹配多个元子,可以通过元子组完成 • 原子组与原子表的差别在于原子组一次匹配多个元子,而原子表则是匹配成 功表中的一个元字符就可以 • 元字符组用()表示 示例: 1. $str = "后盾官网后盾论坛http:// 我在后盾的网名叫houdun"; 2. $preg = "/(houdun)wang/is"; 3. $newStr= preg_replace($preg,'<span style="color:#f00">\1</ span>wang',$str); 4. echo $newStr; 以上示例是将houdunwang字符串中的houdun描红
|
后盾网 人人做后盾
• • • • • •
* + ? {n} {n,} {n,人人做后盾
?
• • • • •
*? +? ?? {n,m}? {n,}? 1 0 n n m 1
后盾网 人人做后盾
• ^ $
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

正则表达式
1.什么是正则表达式
a)例子:’/<img\s+src=\”.*?\”\s+\/>/’;这就是正则表达

b)乱七八糟的一堆字符堆砌在一起,神秘的符号,有着
奇特的意义
2.和正则表达式相识的事物?
a)乱/看不懂/神秘/意义
医生的字只有医院的人能看懂
道士的符只有道士明白
女人的心只有女人能懂
正则表达式只有程序员能看懂(所有的高级语言中都有正则表达式)
3.学习正则表达式可以做什么、
a)操作字符串时正则表达式的唯一作用
验证用户名长度是否合法
验证密码是否符合标准
验证手机号
验证URL地址
验证邮箱
BBS编辑器
Qq聊天表情
新闻采集器小偷程序
4.看看正则表达式的一些特点
a)1.正则表达式也是一个字符串
b)2.由特殊意义的字符组成的字符串
c) 3.具有一定的编写规则,也是一种模式
d)4.看做是一种编程语言
因为是用一些特殊字,按照规则编写出来的字符串,形成一种模式-正则表达式。

注意:如果正则表达式,不和函数一起使用,则他就是一个普通的字符串而已。

如果把正则表达式放入到函数中一起使用,才能发挥出正则表达式的作用。

比如:将正则表达式放入到分分隔函数,哪可以用这个正则表达式去分隔字符串。

总结:正则弊端是就是通过构建具有特定规则的模式了,在于输入的字符串信息进行比较,分隔,查找,替换等工作。

在实际应用中记住一点:能使用字符串处理函数来完成的就不要使用正则表达式来完成。

愿意:效率低。

5.PHP中提供了两套正则表达式函数库
a)Posix 扩展正则表达式函数-》ereg
b)Perl 兼容正则表达式函数->preg
(两套函数库功能一样,但是perl效率高,所以官方推荐使用perl)
6.学习正则表达式时,有两方面学习
a)1.正则表达式的模式如何编写
b)2.学习正则表达式的强大处理函数
7.正则表达式的语法(分4部)
a)1.正则定界符
b)2.正则表达式中的原子
c) 3.正则表达式中的元字符(原子修正符)
d)4.正则表达式的模式修正符
8.正则表达式的定界符
a)正则表达式的定界符是用来声明正则表达式的边界符
号。

正则表达式常用个的边界符是’/‘实际上任何非数字字
符和\之外的字符都可以做正则表达式的边界符
注意:
一个完整的正则表达式有两边界符
1.一个是字符串类型的引号边界符
2.一个是正则表达式的边界符。

9.正则表达式的原子
a)组成正则表达式的最小的单位就是原子
1.原子都有哪些内容组成?
i.所有的可见字符都是原子
ii.大部分不可见字符也是原子:比如:空格\N \R \T 这些转移字符也是原子。

\d 表示数字0-9之间的任意一个数字
\D 表示除了数字以外的任意一个字符
\s 表示所有的空白符中的任意一个字符
包括:\n \r \t 空格等
\S表示除了所有空白符之外的任意一个字符
\w 表示数字大小写字母以及下划线中任意一个字符
\W 表示除了数字大小写字母以及下划线之外的任意
一个字符。

10.正则表达式的元字符(原子修饰符)
[]原子列表
表示在指定的字符选取一个原子
[5-9]表示5,6,7,8,9连接的字符允许缩写为开始字符到结束字符。

排除列表:[^]
[^4]表示除了4之外的所有字符都可以使用
使用原子列表以及排除列表模拟以上的\D\d\S\s\w\W的效果
\d [0-9]
\D [^0-9]
\s [ \n\r\t]
\S [^ \n\r\t]
\w [0-9a-zA-Z_]
\W[^0-9a-zA-Z]
原子数量修饰符
?表示前面的原子出现1次或者0次{0,1}
+ 表示签名的原子出现1次或者多次{1,}
* 表示前面的原子出现0次1次或者多次{0,}
原子数量修饰列表
{m,n}表示前面的原子可以出现从m个到N个
{m,} 表示前面原子最少出现m次
{m}表示前面原子出现m次
字符串边界修饰符(也就是说开始和结束符)
^表示以指定字符开头的内容
$表示以指定字符结尾的内容
^字符串$表示精确匹配某一个字符(多一个少一个都不行)
注意:如果要使用^和$可以匹配每一行的开始和结束部分,需要使用后面学习的模式修正符m
选择修饰符|
模式单元()
1.改变优先级
2.将多个原子视为一个原子,目的是可以使用原子数量修饰符
3.将匹配到的括号中的内容暂时存为内存当中
4.如果使用()仅仅为了模拟一个原子使用原子数量修饰符,可以在括号的开始处使用?:来解除存于内存的作用,提高效率
5.可以将括号的内容在函数的辅助相爱进行反向引用操作。

\d{15}|\d{18}|\d{17}x 身份证
\d+\.\d+\.\d+\.\d+ 1.1.1.1 ip地址
\d{3}-\d{8}|\d{4}-\d{7} 座机号010-********
0123-1234567
[a-zA-Z]+:\/\/[^\s]* 域名
//Aaaaaaaaaaaa://asdhfjkahksjdfhlasldhflkjasdhflasdhljkf
作业:今日讲解正则的原子元字符练习三遍。

整理课堂笔记
自己写电话号验证规则
1 3 [0123456789]
1 4 7
1 5 1234567890
1 7 0178
1 8 0 1
2
3
4
5
6
7
8 9
留的在线相册写完。

模式修正符
i 忽略大小写
X 忽略正则表达式中的空白。

元字符:英文状态下的点
匹配任意一个原子除了\n
s 使得.元字符可以匹配\n
m 视为多行处理该模式下^和$可以匹配\n
e :逆向引用(先不讲)
S:加速匹配(没有效果)
U 模式改变贪婪模式
正则表达式默认是贪婪的,匹配最远的结束为止。

我们可以在正则中使用.*?匹配任意字符的同时,使用非贪婪模式。

注意:如果正则表达式为贪婪模式,使用U模式修正符后,该正则表达式为非贪婪模式匹配,如果该表达式为非贪婪模式,在使用U。

表示使用贪婪模式匹配。

课堂代码2遍。

练习题一套
预习GD库。

相关文档
最新文档