php善用正则表达式 处理字符串中需不要的值

     今天在采集莫网址的图片的时候,由于自己最后都会讲图片分辨率改为320*480,而原先的图片中存在有关于像素的信息。

     如:清晰小屋(320*480)壁纸

     那么最后我要留下的是“清晰小屋壁纸”,该怎么办呢?

    首先我们应该立马想到,先查找字符串,在去掉此字符串。

    嗯,首先我也是这么想的,定义一个数组,其中存了几个字符串,如(320*480)、(480*640)等,不过后来发现,其中还有其他类型的如(320*234)之流的,那么我全列出来也不是不可能的,只不过是时间的问题。但是我们不这么做,是在太没意思了。这样弄得话,估计半天就过去了,而且弄得自己很不爽。

   那么该这么办呢?

   首先观察多个数据,我们发现,其中有应该要有“*”,这个必须得知道的,否则没有要去的值也弄进来,加大计算机的工作量了。

   那么就来了一个:

if(strchr($title, "*"))
	  {
 用来判断字符串中是否包含"*";

 如果包含了,那么里面一定有我们要去掉的东西,接下来该怎么办,找出要去掉的字符串,然后用NULL替换?显然不能在像上面的方式找了。

而我用了字符串切割的方式:

$arr=split('([\(]*)[0-9]+\*[0-9]+([\)]*)',$title);//*一定要进行转义
		$title = $arr[0].$arr[1];
其中([\(]*)[0-9]+X[0-9]+([\)]*)为正则表达式,

([\(]*)表示可能存在(

[0-9]+表示至少存在一个0到9的数字

\*存在"*"
那么上面的 (320*480) 很简单的找出来了。
一下是测试程序

<?php
 
$title="清晰小屋(320*480)壁纸";

if(strchr($title, "*"))
	  {
		$arr=split('([\(]*)[0-9]+\*[0-9]+([\)]*)',$title);//*一定要进行转义
		$title = $arr[0].$arr[1];
                echo $title;
	  }
?>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值