将行更改为粗体,如果以冒号结尾,并且只包含一个单词

时间:2014-07-20 18:07:18

标签: php regex

如果最后一行中只有一个单词,那么如何将单词更改为粗体?

数据来自mysql数据库的文本字段,代码是php

2 个答案:

答案 0 :(得分:1)

您可以捕获<b>

所包围的单词和替代字词
^(\w+):$

Live demo

示例代码:

$re = "/^(\\w+):$/m";
$str = "abc:\nabc\nabc:xyz\n";
$subst = '<b>$1</b>';

$result = preg_replace($re, $subst, $str);

模式说明:

  ^                        the beginning of the string
  (                        group and capture to \1:
    \w+                      word characters (a-z, A-Z, 0-9, _) (1 or more times)

  )                        end of \1
  :                        ':'
  $                        before an optional \n, and the end of the string

答案 1 :(得分:0)

使用此:

$replaced = preg_replace('~^\w+:$~', '<b>$0</b>', $yourstring);

<强>解释

  • ^锚点断言我们位于字符串的开头
  • \w+匹配一个或多个字词
  • :匹配冒号
  • $锚点断言我们位于字符串的末尾
  • 我们替换为<b>,整体匹配(由$0引用)和</b>