设为首页 收藏本站
查看: 700|回复: 0

[经验分享] PHP字符串操作-正则表达式和替换函数

[复制链接]

尚未签到

发表于 2017-4-10 10:12:31 | 显示全部楼层 |阅读模式
  ******代码参考于  "PHP与MySQL程序设计"一书
  一般字符串的验证或多或少都会用到正则表达式。PHP对正则表达式的支持相当丰富,有POSIX和PEAR两种格式的正则表达式语法支持。
  下面就PEAR格式的常用正则表达式进行一些实例展示。
  用到3个PEAR格式的正则表达式验证函数:preg_match ---匹配函数   preg_replace---替换函数, preg_split---分割函数
  1.preg_match:
  看一个最简单的例子: '; ?>  PEAR格式的正则表达式:/ 表示界定符,一般用在表达式开始和结尾处。 /pizza/就表示包含pizza的任意字符串。 下面是验证形如  ****@****.com/cn/org的邮箱格式。
  ^ 放在表达式开头表示以后面字符开头
  而[^0-9]表示不包含0-9
  [a-zA-Z0-9_]表示包含小写、大写字母以及数字和下划线的字符。
  *表示任意个前面的字符。
  [.]表示包含有  .
  而[.*]或者(.*) 表示匹配任意字符(除换行符)
  下面的正则表达式含义是: 匹配 不是数字开头的并且以若干个字母(大小写)开头同时有数字或者下划线组合的字符串  加上  @  加上  若干大小写字母和数字的组合  加上  .   加上2-4个大小写字母的组合。 "; } ?>  以上2个例子输出:   
  
  2.preg_replace:
  下面的例子把  匹配有http://****/的字符串输出为HTML中的链接。  正则表达式中的/需要进行转义  即 \ /\ /表示  //
  preg_replace参数: 第一个是正则表达式, 第二个参数是替换的字符串, 使用${0}来指定所有匹配的字符串。 ${n}表示第n个被匹配的字符串(n>0)。 第三个参数就是需要替换的变量。 ${0}', $website); echo ""; ?>  结果:
  
  3:preg_split:
  第一个参数是需要匹配的正则表达式, 第二个是需要操作的变量。
  下面的例子匹配逗号","   然后把字符串按照逗号进行划分。 划分后保存在  $result数组中。最后遍历数组输出。 "; } ?>  PHP还提供了一些正则表达式的替换函数,这些函数使用起来都很方便, 可以在需要效率或者匹配不是很复杂的情况下使用.
  1.字符串长度匹配: strlen $password = 'passwordifdefined'; if(strlen($password) ';  2.字符串比较匹配,  strcmp  即 string compare, 传入2个字符串变量,如果完全一样,返回0, 否则返回1 if(strcmp($password, 'randompassword') != 0) echo 'password doesn\'t match'; else echo 'password matches!'; echo'';  结果:  password doesn't match
  3.字符串包含匹配: strspn($s1, $s2) 如果$s2中完全包含有$s1的字符,那么返回$s1的长度。下面的例子验证一个变量是否全是由数字构成: $passwordNum = "3412512"; if(strspn($passwordNum, "1234567890") == strlen($passwordNum)) echo 'password can\'t only consist of numbers!'; echo '';  结果: password can't only consist of numbers.
  4.搜索指定字符串出现的位置: strpos($s1, $s2)  在$s1中搜寻含有$s2的字符串,返回第一次出现的位置。
  下面的例子利用substr得到 index第一次出现的位置到$file结尾之间的字符串。 $file = '/home/websites/index.html'; $pos = strpos($file, 'index'); echo substr($file, $pos, strlen($file)); echo "";  5.得到指定字符串出现的频率。   substr_count  
  下面的例子得到在$article中 love 和 you出现的次数。  这个技巧可以实现一些网站的搜索统计功能。 $keywords = array('love', 'you'); $article = '.$keyword.' appears '.substr_count($article, $keyword).' times'.""; }  6.去除字符串的首尾字符。
  下面的例子去除字符串的首尾空格。 $text = ' text with spaces '; echo trim($text, ' ');  7.字符串替代: substr_replace($s1, $s2, $start, $length)  用$s2替换$s1, 替换的部分从$start开始, 长度为$length
  下面的例子是把手机号码中间的部分替换成 * , 可以用在一些幸运抽奖的应用中。 $phoneNumber = '13978787878'; echo substr_replace($phoneNumber, '*****', 3, 5);   结果:139*****878
  好了, 就这些。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-362769-1-1.html 上篇帖子: 【捷哥浅谈PHP】第四弹---递归函数 下篇帖子: php 序列化和反序列化两种方法--learning
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表