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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信绑定银行忘支付密码忘了怎么办 微信桂林银行不可以支付怎么办 微信忘记支付密码和银行卡号怎么办 京东商城迟迟不通过退货审核怎么办 网上购物想退款商家要我拒收怎么办 运输公司对车主不买保险怎么办 苹果平板限制访问密码忘了怎么办 安卓手机忘了解锁密码怎么办 海之蓝扫码显示域名不对这是怎么办 华为手机丢了帐号密码忘记了怎么办 电脑会员系统账号密码忘记了怎么办 推广渠道客户要求免费铺货怎么办 代理机构做的网站找不到人了怎么办 瓷砖买的和描述的不一样怎么办 网上买东西地址的省份写错了怎么办 驾校把预留号码注册错了怎么办 太害羞了不敢进店买东西怎么办 收件箱邮箱邮件满了但不想删怎么办 模拟人生畅玩版任务时间过了怎么办 快递放柜子里长时间不拿怎么办 古筝的筝码序号错了怎么办? 极限竞速3地平线爆内存怎么办 车载导航安卓系统禁止装软件怎么办 在微信上买东西买到假货怎么办 想从新西兰寄红酒到家运费怎么办 新买的裤子掉色把内裤染色了怎么办 白衣服变脏变黄怎么办用英文怎么说 经常宅在家里不爱出去玩怎么办 在家里呆不住老想着往外跑怎么办 新商盟网上订烟登录密码忘了怎么办 在拼多多购物质量有问题怎么办 美图手机总弹出一键加速广告怎么办 手机看小说总是喜欢弹出广告怎么办 美团外卖商家注册门头不合格怎么办 手机一打网页就自动弹出广告怎么办 美团预定的宾馆不可取消怎么办 公积金注册时的号码忘了怎么办 苹果7基带坏了修不好怎么办 苹果手机玩终结者2卡怎么办 支付宝转账转到邮箱忘记邮箱怎么办 朋友转账到我的邮箱支付宝怎么办