我只是想在两个空格之间找到我的字符串周围的未知文本。 例如:
$mystring = "blabalbla <b>sometext</b> <b>ssssss</b>"
我想用这个做什么:
我知道“sometext”但我想把字符串放在
中<b>sometext</b>.
但是我的字符串总是在变化,例如它可以是:
<s><b>sometext</b></s>
现在我需要把整个变成一个字符串
<s><b>sometext</b></s>.
所以我不能简单地将我的变量附加到
<b>.mystring.</b>
如果我的周围有不明字符串的情况,请注意。
我该怎么做?或者是否有另一种方法来查找和删除
<b><s><i></b></s></i> etc.... around my string?
Thnaks,Creep。
答案 0 :(得分:0)
您可以使用正则表达式:
$mystring = preg_replace('/(^|\s)(?:<[^>]*>)*sometext(?:<[^>]*>)*(\s|$)/i', '$1'.$some_new_text.'$2', $mystring);
我对你所提供的内容进行了测试,应该可以很好地运行。它处理文本在其自身,字符串的开头或结尾处,并由无限数量的html实体包围。
<强>描述强>
(^|\s)
(?:<[^>]*>)*
preg_quote
方法来转义任何特殊字符(?:<[^>]*>)*
(\s|$)
/i
(可选)请注意,在替换字符串$1
和$2
上添加了前导和尾随空格(如果有)。