PHP正则表达式查找&替换特定字符串

时间:2014-08-27 10:35:51

标签: php regex string replace find

那么,

我有一些如下文字:

  

< Jens>是我的名字。我玩<足球>。我看到< Steffy>昨天。是的,我们将<一起>当然可以。

我只想要'<'之间的所有文字。 &安培; '>' (包括<>)使用正则表达式(优选地)或任何其他方法以编程方式加粗。这是一种Find&更换。所以在操作文本之后应该是:

  

< Jens> 是我的名字。我玩<足球> 。我看到< Steffy> 昨天。是的,我们将<一起> 肯定。

3 个答案:

答案 0 :(得分:2)

使用preg_replace_callback()

<?php
// header('Content-Type: text/plain; charset=utf-8');

$test = <<<TXT
< Jens > is my name. I play < Football >.
I saw < Steffy > Yesterday. Yeah, We will be < Together > For sure.
TXT;

$result = preg_replace_callback(
    '/<[^>]+>/',
    function($matches){
        return '<b>' . htmlspecialchars($matches[0]) . '</b>';
    },
    $test
);

print_r($result);
?>

<强>输出:

  

&LT; Jens&gt; 是我的名字。我玩&lt;足球&gt; 。我看到&lt;   Steffy&gt; 昨天。是的,我们将&lt;一起&gt; 肯定。

答案 1 :(得分:2)

您可以使用此preg_replace

$repl = preg_replace('/(<[^>]*>)/', '<b>$1</b>', $str);

<b>< Jens ></b> is my name. I play <b>< Football ></b>. I saw <b>< Steffy ></b> Yesterday. Yeah, We will be <b>< Together ></b> For sure.

RegEx Demo

答案 2 :(得分:1)

为了更好地理解和学习正则表达式,您可以访问以下链接

学习正则表达式

Useful regular expression tutorial

Regular expressions tutorials

其中一个最好也很容易和我最喜欢的是

http://www.9lessons.info/2013/10/understanding-regular-expression.html?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+9lesson+%289lessons%29

非常好的初学者教程