我正在使用php中的正则表达式和preg_replace()函数编写BB代码解码器和编码器。

我主要使用这种类型的正则表达式,并且效果很好

$text = preg_replace("/\[b\](.*)\[\/b\]/", "<strong>\\1</strong>", $text);

我的问题是列表,我在BB代码中这样写它们:

[numlist]
[*]number list
[*]number list
[*]number list
[/numlist]

但是因为我在编码器函数的末尾使用了nl2br(),所以那里的BB代码会生成很多额外的br标签,因此在该位代码上调用了这些替换函数之后;

$text = preg_replace("/\[numlist\](.*)\[\/numlist\]/sm", "<ol class='pol'>\\1</ol>", $text);
$text = preg_replace("/\[\*\](.*)/", "<li>\\1</li>", $text);

我最终得出以下结论:

<ol class='pol'><br />
<li>number list<br />
</li><br />
<li>number list<br />
</li><br />
<li>number list<br />
</li><br />
</ol><br />

所以现在在我的CSS中,我必须添加margin:0px 0px -30px 40px; 标记为ol li标记,因此看起来不错,但丑陋。

我的问题归结于此; 我如何使用正则表达式在[numlist] [/ numlist]代码中查找所有线尖并将其删除?

  ask by Darius Poyer translate from so

本文未有回复,本站智能推荐:

2回复

正则表达式,删除标签之间的换行符

我追求的是一种模式,当在标记之间进行选择时,它将始终将所有内容都放在一行上。 在这种情况下,我希望<ul>标记内的所有内容都位于一行上。 我在整个stackoverflow中尝试了一些,但到目前为止都没有成功。 预期: 编辑: 从html标记之间删除换行符可能是我
3回复

PHP正则表达式-删除$和换行符之间的任何内容,但保留换行符

好的,我有一个php循环,它会生成如下字符串: 我想删除美元金额,但不确定是否有可能。 我一直在尝试使用preg_replace删除$到<之间的所有内容,包括$但不删除<以获得类似这样的信息: 对于我来说不幸的是,我不得不离开-因为有时在同一行上会有-多个实例,如下
4回复

正则表达式删除换行符之间的数字

我有一个巨大的代码,其中某些行之间有数字:例如: 我想删除此数字,使代码之间成为: 我试过了: 但它不起作用。
2回复

正则表达式,在标签之间匹配换行符

我在PHP中有此正则表达式: 当摘要标签之间的文本在一行上时,它可以正常工作。 但是,当包含换行符时,则不匹配。 我试图在这里找到正确的修饰符: http : //nl2.php.net/manual/en/reference.pcre.pattern.modifiers.php
2回复

使用正则表达式删除冗余换行符

我正在用PHP开发一个服务站点 ,它只显示访问者发布的消息(理想情况是围绕网站的主题)。 任何人都可以每小时发布三条消息。 由于网站只有一页,我想控制每条消息的垂直长度。 但是,我确实希望至少部分保留原始邮件中的换行符。 折衷方案是允许两个换行符,但如果有两个换行符,则将它们替换为一
1回复

正则表达式删除CSV文件中引号之间出现的任何换行符[重复]

这个问题已经在这里有了答案: 如何使用PHP解析CSV文件[重复] 6个答案 我试图找到一个正则表达式,它将匹配CSV文件中双引号分隔字符串之间的任何换行符。 我可以使用此正则表达式识别引号之间的字符串: (["])(?:\\\\.|[^\\\\])*?\\1
3回复

正则表达式后删除换行符和选项卡

我正在以下HTML代码上执行preg_match(): HTML代码: 正则表达式模式: 结果: 多余的行和空格是我想要摆脱的。 使用/sm选项不会影响结果。 使用str_replace("\\n",'',$string)摆脱了一行,并且前面的空格应该是\\t制
2回复

列表项正则表达式后删除换行符?

好的,我正在寻找一种方法: 剥夺了结局 当我在php中执行nl2br函数时,它会被添加到它。 或者你认为更好的想法是剥离所有新线条 标签? 这是我网站上文章的bbcode-> html函数的一部分。
2回复

正则表达式和PHP,用于使用多个换行符在标签之间提取内容

如何使用多个换行符提取标签之间的内容? 我是regex的新手,他想知道如何处理未知数量的换行符以匹配我的查询。 任务:在<div class="test">和第一个结束</div>标记之间提取内容。 原始资料: 我已经计算出以下正则表达式,
1回复

缩小:使用正则表达式从JavaScript代码中删除换行符

纯粹出于混淆的目的,前三行似乎很好地清除了脚本中不必要的输入。 谁能告诉我1-4行实际上是做什么的? 从试验和错误中我唯一了解的是,如果我注释掉第四行,则该站点可以正常运行,如果我将其保留在原处,则该站点会中断。 是否有更好的方法从JavaScript中删除一个或多个行输入?