Co jest nie tak z tym regexem ?

0

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

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

wyjście w HTML jest:

<i class="" aria-hidden="true"></i>fa fa-tachometer
0

Co robią te hashe w preg_replace?

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.

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

#icon: (.*)#

lub

#^icon: (.*?)$#
0
Reveres napisał(a):

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

#icon: (.*)#

lub

#^icon: (.*?)$#

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1