Co jest nie tak z tym regexem ?

Co jest nie tak z tym regexem ?
RE
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 7 lat
  • Postów:44
0

Mam problem z regexem :/ co tutaj jest nie tak ?

Kopiuj
$test = "icon: fa fa-tachometer";
preg_replace("#icon: (.*?)#", '<i class="\1" aria-hidden="true"></i>', $test);

wyjście w HTML jest:

Kopiuj
<i class="" aria-hidden="true"></i>fa fa-tachometer
edytowany 1x, ostatnio: Reveres
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

Co robią te hashe w preg_replace?


PE
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:111
1

Nie jest czasem tak, że chcesz złapać w grupę najkrótszy możliwy ciąg złożony z dowolnych znaków?
Najkrótszy możliwy ciąg ma długość 0. Dlatego Ci się grupa nie łapie.

RE
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 7 lat
  • Postów:44
0

xD
To są "delimiters" (ograniczniki) mągą być alfanumeryczne z tego co czytałem żeby nie kolidowały chyba z wyrażeniem można ustawić sobie jakie się chce, ale nie jestem pewien.
Problem rozwiązałem sam, są 2 rozwiązania

Kopiuj
#icon: (.*)#

lub

Kopiuj
#^icon: (.*?)$#
Patryk27
Ach - na ogół wykorzystywane są / (np. /[a-zA-Z]/) - nie wiedziałem, że można inne wrzucać ;-)
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Koszalin
  • Postów:10094
0
Reveres napisał(a):

Problem rozwiązałem sam, są 2 rozwiązania

Kopiuj
#icon: (.*)#

lub

Kopiuj
#^icon: (.*?)$#

Albo mógłbyś icon: \S* (\S to jest wszystko co nie jest białym znakiem, np spacją).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.