Php 从输入字符串返回html的函数
使用以下规则定义将字符串转换为有效html的函数:Php 从输入字符串返回html的函数,php,Php,使用以下规则定义将字符串转换为有效html的函数: \u C必须替换为 **Hello World**必须替换为Hello World \uuuu Hello World\uuuuu必须替换为Hello World 我的尝试 $str = "Hi my name is __Matteo__and, _C I'm **Italian**"; function replaceString($str){ $newStr = str_replace("__", " <strong&
必须替换为\u C
必须替换为**Hello World**
Hello World
必须替换为\uuuu Hello World\uuuuu
Hello World
$str = "Hi my name is __Matteo__and, _C I'm **Italian**";
function replaceString($str){
$newStr = str_replace("__", " <strong> ", $str);
$newStr = str_replace("**", "<i>", $newStr);
$newStr = str_replace("_C", "<br/>", $newStr);
return "<p>" . $newStr . "<p/>";
}
$str=“你好,我的名字是马特奥,我是**意大利人**”;
函数replaceString($str){
$newStr=str\u replace(“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;
$newStr=str_replace(“**”,”,$newStr);
$newStr=str_replace(“_C”,”
,$newStr);
返回“”$newStr.“”;
}
我不知道如何关闭标签
和
有什么帮助吗?如果这是我的任务,我会使用非正则表达式str\u替换
\u C
。然后对带有开始/结束标记的部分使用正则表达式
代码:(演示:)
$str=“你好,我的名字是马特奥,我是**意大利人**”;
函数replaceString($str){
$str=str\u替换(“\u C”,“
”,“$str”);
$str=preg\u replace(['~\\+)\\\*([^*]+)\*\*\*.],['$1','$1'],$str);
返回“”$str.“”;
}
回显替换字符串($str);
输出:
<p>Hi my name is <strong>Matteo</strong>and, <br/> I'm <i>Italian</i><p/>
你好,我的名字是马特奥,
我是意大利人
我的正则表达式模式使用否定字符类,因为它们允许正则表达式引擎以更高的效率移动。捕获组允许您隔离已包装的子字符串,并在替换中应用新包装。这是家庭作业吗?如果你环顾四周,你可以找到一个解析器。你能正确格式化需求吗?也许你想看看正则表达式?在
C
之前有多少下划线?和。(停止删除我的评论,没有问题)@Script47 Editor已经更改了OP。不知道你可以使用带有preg\u replace的数组,整洁。你确定\uuu.*?\ u\ u
不会更快吗?请访问regex101。当您要求正则表达式引擎贪婪地匹配时,它可以“移动得更快”。当你让量词变懒的时候,你就失去了效率。该死,你是对的,你的rex肯定快多了
<p>Hi my name is <strong>Matteo</strong>and, <br/> I'm <i>Italian</i><p/>