регулярное выражение PHP

Я перепробовал множество решений, но, к сожалению, у меня ничего не работает.
Ниже мой код.

<?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

Решение

Просто сопоставьте ту часть, которую хотите удалить.

$y = preg_replace("~,?10-\w*,?~", "", $x);

DEMO

Объяснение:

,?                       ',' (optional)
10-                      '10-'
\w*                      word characters (a-z, A-Z, 0-9, _) (0 or more times)
,?                       ',' (optional)
2

Другие решения

,(?=[^,]+,[^,]*$).*$

Попробуйте это. Заменить на 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);
0

По вопросам рекламы [email protected]