Regex to split BBCode into pieces

Please don’t use BBCode. It’s evil. BBCode came to life when developers were too lazy to parse HTML correctly and decided to invent their own markup language. As with all products of laziness, the result is completely inconsistent, unstandardized, and widely adopted. Try to use a user-friendlier markup language, like Markdown (that’s what Stack Overflow … Read more

php regex [b] to

There are various BBCode parsers available for PHP, for instance http://www.php.net/manual/en/book.bbcode.php which allows you to simply define your replacement rules by hand: echo bbcode_parse( bbcode_create( array( ‘b’ => array( ‘type’ => BBCODE_TYPE_NOARG, ‘open_tag’ => ‘<b>’, ‘close_tag’ => ‘</b>’ ) ) ), ‘[b]Bold Text[/b]’ ); // prints <b>Bold Text</b> Also check the various similar questions about … Read more

How to convert HTML to BBCode

It should be doable with XSLT in text output mode: <xsl:output method=”text”> … <xsl:template match=”b|strong”>[b]<xsl:apply-templates/>[/b]</xsl:template> <xsl:template match=”br”>&#10;</xsl:template> <xsl:template match=”p”>&#10;<xsl:apply-templates/>&#10;</xsl:template> <xsl:template match=”a”>[url=”<xls:value-of select=”@href”/>”]<xsl:apply-templates/>[/url]</xsl:template> <xsl:template match=”text()”><x:value-of select=”normalize-space(.)”/></xsl:template> To get there parse HTML and use built-in XSLT processor.