Witam,
Mam takie wyrażenie regularne:
/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/
Jak to wygląda w praktyce?
Witam,
Mam takie wyrażenie regularne:
/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/
Jak to wygląda w praktyce?
Sprawdź tam, skąd to wziąłeś, albo poczytaj o wyrażeniach regularnych (materiałów nie brakuje).
Współpracuje z tą funkcją:
protected function upcount_name_callback($matches) {
$index = isset($matches[1]) ? intval($matches[1]) + 1 : 1;
$ext = isset($matches[2]) ? $matches[2] : '';
return ' ('.$index.')'.$ext;
}
Jest to funkcja do sprawdzania czy na serwerze jest już dany plik. Jeśli jest to skrypt dokleja kolejną liczbę w nawiasie, np.:
test.jpg
test (1).jpg
Chciałbym to edytować tak aby zamiast nawiasów i spacji wstawiany był tylko myślnik czyli:
test-1.jpg
Niestety ale edycja powyższej funkcji nie daje efektu, muszę edytować wyrażenie ale mimo pomocy tutoriali nie mogę rozszyfrować tego wyrażania.
tamto wyrażenie dopasowywuje końcówkę stringa - spację, liczbę w nawiasie, kropkę i przynajmniej jedną niekropkę - podejrzewam, że jest użyte w preg_replace, albo podobnym - żeby pozbyć się tej końcówki, następnie dokleić kolejną
No dobra, usunięcie spacji to kwestia zmiany na:
/(?:(?:(([\d]+)\))?(\.[^.]+))?$/
i
return '('.$index.')'.$ext;
Ale jak pozbyć się nawiasu?
Na szybko. Źle usunąłeś spację, bo usunąłeś jeszcze potem backslasha.
/(?:(?:(-[\d]+))?(\.[^.]+))?$/
return '-'.$index.$ext;