我已经尝试了很多很多解决方案,但不幸的是,对我来说没有任何效果。以下是我的代码。
<?php
$x = "09-27,09-28,10-01,10-02";
$y = preg_replace("/09-\w*,/", "", $x);
echo $y;
?>
这将输出 10-01,10-02 现在,我想要否定它,所以输出将是:09-27,09-28 但我就是找不到方法。非常感谢,我需要我能得到的所有帮助。我想要的是替换不等于给定模式的字符串。
只需匹配您要删除的部分。
$y = preg_replace("~,?10-\w*,?~", "", $x);
解释:
,? ',' (optional)
10- '10-'
\w* word characters (a-z, A-Z, 0-9, _) (0 or more times)
,? ',' (optional)
,(?=[^,]+,[^,]*$).*$
试试这个。替换为empty string
.See 演示。
http://regex101.com/r/tF4jD3/1
$re = "/,(?=[^,]+,[^,]*$).*$/";
$str = "09-27,09-28,10-01,10-02";
$subst = "";
$result = preg_replace($re, $subst, $str);