Frage an preg-replace, regex, php – <b> -Tag mit preg_replace um das erste Wort der Zeichenkette wickeln

4

Mein Problem ist, dass dies:

preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<b>
preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<b>$&</b>', $string);
amp;</b>', $string);

Funktioniert nicht und ich weiß nicht warum!

Es gibt aus:<b>$&</b> example wenn die Zeichenfolge istan example. das ist also falsch Es sollte sein:<b>an</b> example

Ich habe diesen Regex-Code mit erzeugthttp://gskinner.com/RegExr/ wo es funktioniert.

Ich kenne das offensichtlich$& tut nicht das Richtige. Aber wie kann ich es zum Laufen bringen?

Kannst du mir bitte einen Tipp geben?

Deine Antwort

3   die antwort
1
$string = 'an example';
echo preg_replace('/^\b(.+?)\b/i', '<b>$1</b>', $string);

// <b>an</b> example
2

Sie müssen eine Zahl danach setzen$ Hier wäre es die erste Gruppe, daher 0. Arbeitsbeispiel hier:http://codepad.org/4V7GWdja

<?php

$string = "an example";
$string = preg_replace('/(?<=\>)\b(\w*)\b|^\w*\b/', '<b>$0</b>', $string);
var_dump($string);

?>
10

Versuchen Sie es stattdessen mit diesem

preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<b>$0</b>', $string);

$ 0 bedeutet, dass es das erste ist, das mit Ihrer Regex übereinstimmt, $ 1 das zweite usw.

Sie können auch Rückverweise verwenden. \ 0 holt sich das erste zurück, was zu dir passt, \ 1 holt sich das zweite zurück, was zu dir passt usw.Mehr Info

Beeindruckend. so einfach. sehr hilfreich. Danke dir!! John Doe Smith

Verwandte Fragen