如何使用preg_replace删除4digitnumber / 2digitnumber?
我试试这段代码:
<?
$data1 = 2018/01;
$data2 = preg_replace('%\/\d{4}\/\d{2}\/%', '', $data1);
echo $data2;
?>
答案 0 :(得分:1)
您可以在此处执行许多regex
。 easiest
一个是清除/
之外的所有内容:
<?php
$data1 = '2018/01';
$data2 = preg_replace('/[^\/]+/', '', $data1);
echo $data2;
// prints '/'
?>
如果您always have 4 digits before
/
和two digits after
,您还可以regex list
:
<?php
$data1 = '2018/01';
$regexList = array('/^[\d]{4}/', '/[\d]{2}$/');
$data2 = preg_replace($regexList, '', $data1);
echo $data2;
// prints '/'
?>
这里是whole regex list will be exected
。第一个列表元素是字符串前半部分的regex
,后半部分是第二个。
^
匹配字符串的开头(除非它在[ ]
内,然后它是一个char否定),而$
匹配结束。
如果您希望在to delete any amount of digits
之前和之后/
执行此操作:
<?php
$data1 = '206789678918/0179679';
$regexList = array('/^[\d]*/', '/[\d]*$/');
$data2 = preg_replace($regexList, '', $data1);
echo $data2;
// prints '/'
?>
*
标识符与元素0 or more
匹配。如果您希望/
之前或之后至少有一个号码出现,那么您可以使用匹配+
元素的at least one
。
答案 1 :(得分:0)
我已经编辑了你的代码。问题是你的正则表达式正在寻找 / 1234/12 / 而不是1234/12 (其中1234可以是任何4位数字,12可以是任何2位数字。)
并且您的$data1
变量应为字符串
$data1 = '1232018/01abc';
$data2 = preg_replace('/\d{4}\/\d{2}/', '', $data1);
echo $data2;