帮助与正则表达式 - 提取文本

我有3个独立的字符串:

$d = 'Created on November 25, 2009'; $v = 'Viewed 17,603 times'; $h = '1,200 hits';

需要其转换为:

$d1 = {,2009年11月25日的Unix时间戳};

$v1 = "17603";逗号如果存在剥离)

$h1 = "1200";逗号如果存在剥离)

什么是最有效的方法来做到这一点(可能与正则表达式)? 任何代码段将是巨大的。

--------------解决方案-------------

编辑:是的,这是不是太困难

$d = 'Created on November 25, 2009';
$v = 'Viewed 17,603 times';
$h = '1,200 hits';

$d1 = strtotime( str_replace( 'Created On ', '', $d ) );
$v1 = str_replace( ',', '', preg_replace( '/[a-zA-Z\s]+([0-9,]+)[a-zA-Z ]+/', '$1', $v ) );
$h1 = str_replace( ',', '', preg_replace( '/([0-9,]+)[a-zA-Z ]+/', '$1', $h ) );

为了第一:

$d_stripped = str_ireplace("Created on ", null, $d);
$created = strtotime($d_stripped);

第二和第三,有人更精通正则表达式比我一定会提供一个很好的解决方案。

使用克里同str_replace函数的解决方案。 短,易于维护。

你可以使用正则表达式来剥离逗号,但如果你不能写了,你打算怎么解决?

要么

你可能没有逗号(数字小于1000),一个逗号(1,000-999,999),两个逗号(1,000,000-999,999,999)..然后你可以使用一个表达式,如:

$ V ='已浏览17603次“;
$ H ='1200点击';
$模式='/(\ d +)[,] *(\ D *)[,] *(\ D *)/';
$替换='$ {1} $ {2} $ {3}“;
回声preg_replace函数($模式,$替换,​​$ V);
回声preg_replace函数($模式,$替换,​​$ H);

分类:php 时间:2015-03-15 人气:0
本文关键词: PHP的,正则表达式
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.358 (s). 10 q(s)