PHP连续出现的字符替换为其他参数

PHP连续出现的字符替换为其他参数,php,regex,Php,Regex,我有一根像 sadd*sadasdsdsad*sdadsdasdad*asdsadsadsadasdsdsd*asdasdsadasdasdasdasdasdasd*asdasdadasdsdasd*asdsaddasdasdas* 现在我希望所有连续的*分别替换为和。上面的字符串将成为 sadd<b>sadasdsdsad</b>sdadsdasdad<b>asdsadsadsadasdsdsd</b>asdasdsadasdasdasdasd

我有一根像

sadd*sadasdsdsad*sdadsdasdad*asdsadsadsadasdsdsd*asdasdsadasdasdasdasdasdasd*asdasdadasdsdasd*asdsaddasdasdas*
现在我希望所有连续的*分别替换为
。上面的字符串将成为

sadd<b>sadasdsdsad</b>sdadsdasdad<b>asdsadsadsadasdsdsd</b>asdasdsadasdasdasdasdasdasd<b>asdasdadasdsdasd</b>asdsaddasdasdas*sdfdsfsd
saddasdsdsadsdadasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdas*sdfdsfsd

最后一个*没有被替换,因为没有连续的一对星星了。

看起来你可以这么做

\*(.+?)((?=$)|\*)
# match a star
# anything else lazily afterwards
# the end of the string
# or another star

并将其替换为
$1
,请参阅。

似乎您可以简单地执行此操作

\*(.+?)((?=$)|\*)
# match a star
# anything else lazily afterwards
# the end of the string
# or another star

并将其替换为
$1
,请参阅。

最后一颗星将被替换以检查regex101上的相同演示。com@user609306:右,调整为至少匹配一个字符。最好是转义特殊字符,比如星号。最后,我在PHP echo preg__替换中使用了这个字符('/*(.*?*/')、'$1',$string);最后一颗星将被替换以检查regex101的相同演示。com@user609306:右,调整为至少匹配一个字符。最好是转义特殊字符,比如星号。最后,我在PHP echo preg__替换中使用了这个字符('/*(.*?*/')、'$1',$string);