BBCodeるXHTML:二つの可能性、regex?
質問
書い小さなブログのモジュールです。いまのままで利用できるタイプBBCode.I変換する必要があることをXHTMLのサービスから受けることになってしまいほとんどのタグを除き、 [url]
.
りたいです:
[url=http://stackoverflow.com/]
を変換する
<a href="http://www.stackoverflow.com">http://www.stackoverflow.com</a>
や
[url=http://stackoverflow.com/]StackOverflow[/url]
を変換する
<a href="http://www.stackoverflow.com" title="StackOverflow">StackOverflow</a>
残念なっています。その結果がひどいもので、私は迷ったらこれている間に行うことができる一つの正規表現場で分割されます。
解決
この仕事:
\[url\s*=\s*([^\]]*)]\s*((?:(?!\s*\[/url\]).)*)\s*\[/url\]|\[url\s*=\s*([^\]]*)]
交換用パターン:
<a href="$1$3" title="$2">$2$3</a>
試この入力:
bla [url=http://stackoverflow.com/]StackOverflow[/url] bla
bla [url=http://stackoverflow.com/] bla
戻り値:
bla <a href="http://stackoverflow.com/" title="StackOverflow">StackOverflow</a> bla
bla <a href="http://stackoverflow.com/" title="">http://stackoverflow.com/</a> bla
この場合において追加の検証/逃し無効なXML文字(", <,>など) が"ブレイク"のタグです。
他のヒント
このようになっ怪作品を作るべきなので
\[url=([^\]]+)\](?:([^\[]+)\[\/url\])?
マッチングをこのurl$1文字$2れている場合を指定します。なかったこの試験なのであることが要求される可能性があ調整を行う。
Analize機能BBCode2HTML($テキスト)
https://code.google.com/p/pwision/source/browse/trunk/inc/BBCode.inc#150
このアルゴリズムを変換BBCode2HTMLは:1)規制のBBCodeテキスト コードはこちらhttps://code.google.com/p/pwision/source/browse/trunk/inc/BBCode.inc#60
2)変換の規制BBCode XML コードはこちらhttps://code.google.com/p/pwision/source/browse/trunk/inc/BBCode.inc#101
3)実行XSLT変換、XMLます。るXSLTのファイルはこちら https://code.google.com/p/pwision/source/browse/trunk/inc/BBCodeXML2HTML.xslt の変換を行います:https://code.google.com/p/pwision/source/browse/trunk/inc/BBCode.inc#113
Mad godで死にました---。!
PS:良いXSLTのチュートリアルではこちらhttp://www.w3schools.com/xsl/xsl_languages.asp