我尝试了很多很多解决方案但不幸的是,没有什么对我有用。 以下是我的代码。
<?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 但我只是找不到如何。 非常感谢,我需要得到所有帮助。 我想要的是替换不等于给定模式的字符串。
答案 0 :(得分:2)
只需匹配您要删除的部分。
$y = preg_replace("~,?10-\w*,?~", "", $x);
<强>解释强>
,? ',' (optional)
10- '10-'
\w* word characters (a-z, A-Z, 0-9, _) (0 or more times)
,? ',' (optional)
答案 1 :(得分:0)
,(?=[^,]+,[^,]*$).*$
试试这个。empty string
。见。演示。
http://regex101.com/r/tF4jD3/1
$re = "/,(?=[^,]+,[^,]*$).*$/";
$str = "09-27,09-28,10-01,10-02";
$subst = "";
$result = preg_replace($re, $subst, $str);