单词+冒号后的php preg_replace文本

时间:2017-06-21 14:55:19

标签: php regex preg-replace

我疯狂地试图找到正确的表达方式来做到这一点:

原文:

   public void testFinished(Description description) throws Exception {
    Class<?> testClass = description.getTestClass();
    Method m = testClass.getDeclaredMethod("getDescription");
    Object o = m.invoke(null);
    System.out.println(o.toString());   
  }

致本文:

apple:1 10 xxx bla bla bla<br>
orange:2 tic tac toe<br>
lemon:3 123 orange abc<br>

我尝试了类似的东西,但没有奏效:

apple:1 10 xxx bla bla bla<br> orange:<b>2 tic tac toe</b><br> lemon:3 123 orange abc<br>

橙色之后的

文本:在运行脚本的过程中总是不同的,因此str_replace tic tac toe不起作用且没有:还将更改其他应该保持不变的字符串。

1 个答案:

答案 0 :(得分:0)

我认为你很接近,但有些事你没有考虑过。你写正则表达式的方式有2个匹配的东西:单词&#34; orange:&#34;和通配符(。*)。你的正则表达式的作用是:

  • 找到橙色字符串:( SOMETHING)
  • 用自身替换模式的第一个($ 1)部分

所以你发现了或多或少正确的部分,但你并没有真正修改它。以下是适合您的代码:

T_Device(3)

请注意,我认为您的文字是使用换行符$original = "apple:1 10 xxx bla bla bla orange:2 tic tac toe lemon:3 123 orange abc"; $pattern = '/orange:(.*)[^\n]/i'; $replacement = "orange: <b>$1</b>"; $text = preg_replace($pattern, $replacement, $original); print $text 而不是HTML换行符\n分隔的。如果不是这种情况,则需要将此<br>替换为此[^\n]