Php 正则表达式帮助-提取文本
我有3个单独的字符串:Php 正则表达式帮助-提取文本,php,regex,Php,Regex,我有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”(如果存在,则去掉逗号) 最有效的方法是什么(可能是使用regex)?任何代码片段都很好 对于第一个: $d_stripped = str_ireplace("Create
$d = 'Created on November 25, 2009';
$v = 'Viewed 17,603 times';
$h = '1,200 hits';
需要转换为:
$d1=
{2009年11月25日的unix时间戳}
$v1=“17603”代码>(如果存在,则去掉逗号)
$h1=“1200”代码>(如果存在,则去掉逗号)
最有效的方法是什么(可能是使用regex)?任何代码片段都很好 对于第一个:
$d_stripped = str_ireplace("Created on ", null, $d);
$created = strtotime($d_stripped);
对于第二个和第三个问题,比我更精通正则表达式的人肯定会提供一个很好的解决方案。对于第一个问题:
$d_stripped = str_ireplace("Created on ", null, $d);
$created = strtotime($d_stripped);
对于第二个和第三个问题,比我更精通正则表达式的人肯定会提供一个很好的解决方案。编辑:是的,这并不太难
$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 = '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 ) );
使用克里的解决方案和str_替换。短的,可维护的
你可以用正则表达式去掉逗号,但是如果你不能写它,你将如何修复它
或
您可能没有逗号(小于1000的数字)、一个逗号(1000-999999)、两个逗号(1000000-99999999)。。然后您可以使用如下表达式:
$v = 'Viewed 17,603 times';
$h = '1,200 hits';
$pattern = '/(\d+)[,]*(\d*)[,]*(\d*)/';
$replacement = '${1}${2}${3}';
echo preg_replace($pattern, $replacement, $v);
echo preg_replace($pattern, $replacement, $h);
$v=‘浏览17603次’;
$h=‘1200次点击’;
$pattern='/(\d+[,]*(\d*)[,]*(\d*)/';
$replacement='${1}${2}${3}';
echo preg_replace($pattern,$replacement,$v);
echo preg_replace($pattern,$replacement,$h);
使用克里的解决方案和str_替换。短的,可维护的
你可以用正则表达式去掉逗号,但是如果你不能写它,你将如何修复它
或
您可能没有逗号(小于1000的数字)、一个逗号(1000-999999)、两个逗号(1000000-99999999)。。然后您可以使用如下表达式:
$v = 'Viewed 17,603 times';
$h = '1,200 hits';
$pattern = '/(\d+)[,]*(\d*)[,]*(\d*)/';
$replacement = '${1}${2}${3}';
echo preg_replace($pattern, $replacement, $v);
echo preg_replace($pattern, $replacement, $h);
$v=‘浏览17603次’;
$h=‘1200次点击’;
$pattern='/(\d+[,]*(\d*)[,]*(\d*)/';
$replacement='${1}${2}${3}';
echo preg_replace($pattern,$replacement,$v);
echo preg_replace($pattern,$replacement,$h);