Я перепробовал множество решений, но, к сожалению, у меня ничего не работает.
Ниже мой код.
<?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
. См. Демо.
http://regex101.com/r/tF4jD3/1
$re = "/,(?=[^,]+,[^,]*$).*$/";
$str = "09-27,09-28,10-01,10-02";
$subst = "";
$result = preg_replace($re, $subst, $str);