php善用正则表达式 处理字符串中需不要的值
2012-06-19 16:51
681 查看
今天在采集莫网址的图片的时候,由于自己最后都会讲图片分辨率改为320*480,而原先的图片中存在有关于像素的信息。
如:清晰小屋(320*480)壁纸
那么最后我要留下的是“清晰小屋壁纸”,该怎么办呢?
首先我们应该立马想到,先查找字符串,在去掉此字符串。
嗯,首先我也是这么想的,定义一个数组,其中存了几个字符串,如(320*480)、(480*640)等,不过后来发现,其中还有其他类型的如(320*234)之流的,那么我全列出来也不是不可能的,只不过是时间的问题。但是我们不这么做,是在太没意思了。这样弄得话,估计半天就过去了,而且弄得自己很不爽。
那么该这么办呢?
首先观察多个数据,我们发现,其中有应该要有“*”,这个必须得知道的,否则没有要去的值也弄进来,加大计算机的工作量了。
那么就来了一个:
如果包含了,那么里面一定有我们要去掉的东西,接下来该怎么办,找出要去掉的字符串,然后用NULL替换?显然不能在像上面的方式找了。
而我用了字符串切割的方式:
([\(]*)表示可能存在(
[0-9]+表示至少存在一个0到9的数字
如:清晰小屋(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;
}
?>
相关文章推荐
- 正则表达式函数实例详解(及PHP字符串处理函数)
- PHP字符串处理和正则表达式
- php学习_第9章_字符串处理与正则表达式
- 2016/3/18 ①PHP基础 ② PHP函数 ③其他函数(随机数、关于日期) ④正则表达式 ⑤字符串处理
- PHP->正则表达式处理字符串
- php正则表达式及字符串处理函数
- php学习之正则表达式(1)和处理中文字符串
- PHP字符串处理与正则表达式
- python全栈开发-re模块(正则表达式)应用(字符串的处理)
- PHP扩展之文本处理(二)——PCRE正则表达式语法15——性能
- 正则表达式和字符串处理
- 正则表达式处理字符串
- Shell中的正则表达式及字符串处理汇总:
- 利用正则表达式将字符串分组处理
- PHP和javascript中使用正则表达式匹配中文字符串
- ios开发中使用正则表达式识别处理字符串中的URL
- PHP学习:字符串操作和正则表达式
- 正则表达式和字符串处理
- 正则表达式(RegularExpressions)-- 字符串处理利器