我正在尝试使用preg_replace将<br>或<br />转换为回车符( )。我的问题似乎是它要么找不到<br>,要么不能识别我试图传入的十六进制代码。
preg_replace('`<br(?: /)?>(\x{13}/u)`', '$1', $content);其他信息:我传入的字符串有",但我不认为这会影响preg_replace()。
以下是一些帮助我走到这一步的链接:
http://www.webmasterworld.com/forum21/10973.htm (在工具提示中使用回车符而不是\n )
http://us2.php.net/manual/en/reference.pcre.pattern.modifiers.php#58409 (使用\x{13}而不是
)
发布于 2011-07-08 06:57:58
嗯,你的preg_replace格式看起来有点奇怪。不知道为什么你要用这样的反向引用?对于这样简单的代码,第一个变量应该是regex。第二个应该是替换,第三个应该是受制:
preg_replace('%<br.*?>%', ' ', $content);我认为这是可行的,但我不擅长正则表达式。.*?应匹配下一个>之前的任何字符
发布于 2011-07-08 07:01:03
你是不是要把它用来展示给网络?如果是这样的话,我不确定为什么要用<br />标记替换回车符。你发布的第一个链接的回复是正确的:
在插入回车/换行符的实体时(
或)将在Windows的Internet Explorer中产生所需的结果,但它不是任何标准的一部分,并且不受例如Windows上的壁虎浏览器的支持。我没有测试过其他平台。
@choster
然而,为了纠正你的问题。第一个参数是要匹配的模式,第二个参数是要用来替换匹配的内容,第三个参数是内容。
正确的实现应该是这样的
echo preg_replace('/<br\s?\/?>/', '\x{13}/u', "<br> <br />");我不确定\x{13}/u位是否可以工作,因为我还没有测试过。
https://stackoverflow.com/questions/6618014
复制相似问题