我疯狂地试图找到正确的表达方式来做到这一点:
原文:
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不起作用且没有:还将更改其他应该保持不变的字符串。
答案 0 :(得分:0)
我认为你很接近,但有些事你没有考虑过。你写正则表达式的方式有2个匹配的东西:单词&#34; orange:&#34;和通配符(。*)。你的正则表达式的作用是:
所以你发现了或多或少正确的部分,但你并没有真正修改它。以下是适合您的代码:
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]
。