所以我决定尝试制作一个文本突出显示系统.目前,我只是str_replace
用来替换一个单词(例如输入字符串$rstr = str_replace("Console", "<c>Console</c>", $str
在哪里$str
.
困扰我的是如何替换语音标记(")和引号(')内的内容.例如,如果字符串"控制台"变成了Console.WriteLine("Words");
,我怎么会替换"Words"
用<sr>"Words"</sr>
(<sr>
在外部样式表中定义)?
我有我可以使用正则表达式一个,虽然,但1.我不知道该怎么写正则表达式,和2我不知道如何使用正则表达式str_replace
.
function hlStr($original)
{
$rstr = explode('"', $original);
return $rstr[0].'<sr>"'.$rstr[1].'"</sr>'.$rstr[2];
}
Run Code Online (Sandbox Code Playgroud)
根据以下评论,我认为这将是一个更好的资源:http://www.regular-expressions.info/
为了找到"任何可以去的地方"你应该使用正则表达式.这就是他们的目的.对此的正则表达式可能类似于此问题中的答案:
然后你会像这样使用函数preg_replace():
$return_value = preg_replace('/"[^"]+"/', 'replacement text', $str)
Run Code Online (Sandbox Code Playgroud)
无论如何离开这里:
用反斜杠逃避内容:
$rstr = str_replace("Console", "Console.WriteLine(\"$variable\");", $str)
Run Code Online (Sandbox Code Playgroud)
如果您在字符串中使用变量,这将非常有用.如果它只是一个直接文本替换,请使用单引号:
$rstr = str_replace("Console", 'Console.WriteLine("Words");', $str)
Run Code Online (Sandbox Code Playgroud)
单引号计算所有内容,但单引号只是一个字符.
归档时间: |
|
查看次数: |
4681 次 |
最近记录: |