PHP学习第二天:正则表达式
来源:互联网 发布:打工软件哪个好 编辑:程序博客网 时间:2024/05/21 18:55
这些文章都是来记录学习PHP经历的,会有很多bug和错误,参考需谨慎!
工作第二天。
正则表达式(个人理解):将想要对字符串进行的一系列限制用特定的表达方式写出来,是一套规则的集合。然后用这套规则去判断字符串是否符合要求。
<?phpecho "First:" . "<br>";$regex_a = "%[0-9]*[1-9][0-9]*%";$str_a = "132456465asdfasdfqwe798431.21asdfasdf154351asdfasdfa354302";$matches_a = array();/* * 输出$str中所有的正整数。 */if (preg_match_all($regex_a, $str_a, $matches_a)) { var_dump($matches_a);}/*"132456465asdfas", /(\d+)as(\w+)/$match[1] = 132456465$match[2] = dfas*//*foreach($matches_a as $var){ echo $var."<br>";}*//* * Q1、这个地方的=$matches是一个数组,但是不能用foreach逐个输出。 * A;将$matcher中的元素逐个赋值给$var的时候,赋值给$var的是一个数组,不是字符串。 */echo "<br>";foreach ($matches_a as $var) { if (is_array($var)) { foreach ($var as $v) { echo $v . " "; } }}/* * 要把$matcher当做一个二维数组输出! *//* * preg_match()会在找到第一组符合条件的字符串后结束。 * preg_match_all()会找出所有符合条件的结果。 * 在使用pcre函数的时候,正则表达式需要用分隔符包起来。经常使用的分隔符有"/","#",”~“。 */echo "<br>";?><?phpecho "Second:" . "<br>";$regex_b = "%\/%";$str_b = "\asdf///werf";$matches_b = array();if (preg_match_all($regex_b, $str_b, $matcher_b)) { var_dump($matcher_b);}echo "<br>";/* * 如果要在正则表达式中加入分隔符的时候,必须使用反斜线进行转义。这时候可以使用其他分隔符方便区分。 */$regex_c = "%[A-Z]{4,}%i";$str_c = "asdfa8789a7sd9f70ad89s7f;9asd7fawe";if (preg_match_all($regex_c, $str_c, $matcher_c)) { var_dump($matcher_c);}echo "<br>";/* * 在分隔符后面可以加上模式修饰符,如上加上i之后,匹配的时候会忽略大小写。 * {4,}表示至少出现四个连续的字符。 */?><?phpecho "Fourth:" . "<br>";$regex_d = "%^asd%";$regex_dd = "%ads$%";$str_d = "asdfasdadsads";$matchaer_d = array();$matchaer_dd = array();if (preg_match_all($regex_d, $str_d, $matcher_d)) { var_dump($matcher_d);}echo "<br>";if (preg_match_all($regex_dd, $str_d, $matcher_dd)) { var_dump($matcher_dd);}echo "<br>";/* * 在正则表达式中可以使用"^"限定符合正则表达式的字符串必须出现在目标字符串开头。 * "$"限定匹配的字符串必须出现在目标字符串的末尾。 * 在一个字符串内部,"^"表示字符取反。 * Q2、字符取反的意思是将字符转化成二进制然后取反? */?><?phpecho "Fifth:" . "<br>";$regex_e = "%a|b|c%";$str_e = "asdfqwerzxcvaqwersfa";$matches_e = array();if (preg_match_all($regex_e, $str_e, $matches_e)) { var_dump($matches_e);}echo "<br>";/* * 使用"|"表示有多种不同的路径,在模式匹配到这部分的时候,可以选择由|分割的不同的路径。 * 允许连续使用两个||,相当于匹配空字符串。 */?><?phpecho "Sixth:" . "<br>";$regex_f = "%tianqi(?:bucuo|buhao)%";$str_f = "tianqibucuotianqibuhaotianqibucuobuhao";$matches_f = array();if (preg_match_all($regex_f, $str_f, $matches_f)) { var_dump($matches_f);}echo "<br>";/* * ()可以用来从正则表达式中分割出来一个子组。 */?><?phpecho "Seventh:" . "<br>";$regex_g = "%ab*%";$regex_gg = "%ab*?%";$str_g = "abbbbbbbbbbbbbb";$matches_g = array();if (preg_match_all($regex_g, $str_g, $matches_g)) { var_dump($matches_g);}echo "<br>";if (preg_match_all($regex_gg, $str_g, $matches_g)) { var_dump($matches_g);}echo "<br>";/* *两次具有“贪婪”的特性,在允许的范围内,会尽可能多地匹配。 * 加上?之后量词会具有懒惰的特性,在允许的范围内,会尽可能少的匹配。 * ?的效果是改变量词的贪婪特性,如果量词本来是懒惰的,加上?之后量词会变成贪婪的。 */?><?phpecho "<br>";echo "<br>";echo "<br>";echo "<br>";?><?phpecho "No.1" . "<br>";$subject = array("tian", "qi", "bu", "cuo");$pattern = array("%tian%", "%qi%", "%bu%", "%cuo%");$replace = array("you", "xia", "yu", "le");echo "use preg_filter" . "<br>";print_r(preg_filter($pattern, $replace, $subject));echo "<br>";var_dump($subject);echo "<br>";echo "use preg_replace" . "<br>";print_r(preg_replace($pattern, $replace, $subject));echo "<br>";var_dump($subject);echo "<br>";?><?phpecho "No.2" . "<br>";$pattern = "%ab%";$subject = array("a", "b", "ab", "abab");print_r(preg_grep($pattern, $subject));echo "<br>";/* * $subject必须是数组,不能是字符串。 */?><?phpecho "No.3" . "<br>";$pattern = "\Hello \World!";$pattern = preg_quote($pattern);echo $pattern . "<br>";?><?phpecho "No.4" . "<br>";$pattern = "%a%";$subject = "asdfqefadfasdfqwefadwfasdf";$subjects = preg_split($pattern, $subject);var_dump($subjects);echo "<br>";/* * 根据给定的正则表达式分割字符串。 */?>
0 0
- PHP学习第二天:正则表达式
- PHP正则表达式学习
- php正则表达式学习
- php正则表达式学习
- 正则表达式学习第二天——入门
- php正则表达式学习笔记
- php 正则表达式详细学习
- php 正则表达式详细学习
- PHP学习笔记----正则表达式
- php正则表达式学习笔记
- php 正则表达式 学习 教程
- php学习--4 正则表达式
- PHP学习07----正则表达式
- PHP正则表达式学习笔记
- hp 第二天 http响应码 php超时设置 curl的功能 正则表达式
- 正则表达式大全,PHP正则表达式学习+js正则表达式学习
- PHP学习第二天
- 学习php第二天
- struts2_10_单个文件的上传
- seL4 FAQ
- UVA - 439 Knight Moves
- 关于加密解密设计思路
- Python常见错误和异常(4)
- PHP学习第二天:正则表达式
- JAVA线程同步锁机制分析
- struts2_11_自定义拦截器的实现
- shell数组
- 用人话讲虚拟化 2 - 术
- 秒字符设备
- AtomicInteger简介
- java中接口interface可以持有多个类的共享常量
- 飞行器的姿态概念