使用 Php 将 Two/Three 个词替换为一个锚标记
Replace Two/Three words with one anchor tag using Php
我有:
<p>
#mango #orange Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
我想用single:
替换#values,即:#mango, #orange
<a href="#">Link</a>
所以我的预期是:
<p>
<a href="#">Link</a>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
我试过了:
<?php
if( $sentence != '' ) {
$sentence=preg_replace("/#([A-Za-z0-9\_\-\.]*)/", "<a href='#'>Link</a>", $sentence);
}
?>
但它用两个锚标记替换了#mango 和#orange:Link 和 Link相反,我想用一个锚标记替换所有 # 个单词。
我想这个正则表达式就是你要找的:
$sentence = <<<TAG
<p>
#mango #orange Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
TAG;
$sentence = preg_replace("/(#([\w\-.]*)+ )+/", "<a href='#'>Link</a> ", $sentence);
echo $sentence;
一个主要的变化是我之后也在寻找一个space,所以它需要被添加回替换部分。
我有:
<p>
#mango #orange Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
我想用single:
替换#values,即:#mango, #orange<a href="#">Link</a>
所以我的预期是:
<p>
<a href="#">Link</a>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
我试过了:
<?php
if( $sentence != '' ) {
$sentence=preg_replace("/#([A-Za-z0-9\_\-\.]*)/", "<a href='#'>Link</a>", $sentence);
}
?>
但它用两个锚标记替换了#mango 和#orange:Link 和 Link相反,我想用一个锚标记替换所有 # 个单词。
我想这个正则表达式就是你要找的:
$sentence = <<<TAG
<p>
#mango #orange Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
TAG;
$sentence = preg_replace("/(#([\w\-.]*)+ )+/", "<a href='#'>Link</a> ", $sentence);
echo $sentence;
一个主要的变化是我之后也在寻找一个space,所以它需要被添加回替换部分。