Heim > php教程 > php手册 > php善用正则表达式 处理字符串中需不要的值

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

WBOY
Freigeben: 2016-06-13 10:50:26
Original
999 Leute haben es durchsucht

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

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

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

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

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

   那么该这么办呢?

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

   那么就来了一个:

[php] 
if(strchr($title, "*")) 
      { 
 用来判断字符串中是否包含"*";
 如果包含了,那么里面一定有我们要去掉的东西,接下来该怎么办,找出要去掉的字符串,然后用NULL替换?显然不能在像上面的方式找了。

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

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

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

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

[php] 

<?php  <br />
  <br>
$title="清晰小屋(320*480)壁纸"; <br>
 <br>
if(strchr($title, "*")) <br>
      { <br>
        $arr=split('([\(]*)[0-9]+\*[0-9]+([\)]*)',$title);//*一定要进行转义 <br>
        $title = $arr[0].$arr[1]; <br>
                echo $title; <br>
      } <br>
?> 
<br>
作者:wolinxuebin						
Nach dem Login kopieren
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage