2012-03-11 10 views
3

私の文字列には、[hotkey]という形式の「ホットキー」が含まれています。たとえば、次のようにexplodeとregexの選択方法

"This is a sample string [red] [h1]" 

私はPHPの機能で、この文字列を処理する場合、以下のように、私は出力に元の文字列を関数たいと思います。

<font color='red'><h1>This is a sample string</h1></font> 

私はこの機能を純粋に入力を容易にするために使用したいと思います。フォントタグやdivなどを使用しても構いません。ポイントはこれです。ホットキーは、だから、関数が最初に任意のホットキーかどうかがあるかどうかを決定する必要が

<something here>original string<and something there> 

にラップするために、元の文字列が発生します。それは簡単です; [

次に、どのホットキーが存在するかを判断するために文字列を処理し、どのラッパーを配備するかについてbizロジックに入る必要があります。

最後に、ホットキーから元の文字列を消去し、結果を戻す必要があります。

私の質問は、これをより効果的に行うための正規表現がある場合は私の質問は、次のような関数を実装する予定の解析メソッドです。

ステップ1 、

ステップ2 が閉]が存在し、それが定義されたホットキーのいずれかを形成し、そしてもしそうであればどうかを確認するために各アレイ素子を通して移動[デリミタを使用してアレイに文字列を爆発必要なことをしなさい。

明らかに、このメソッドは正規表現の力を使用していません。正規表現がここで助けになるかどうか疑問に思います。または、それを行うためのよりよい方法をお勧めしますか?

+1

言いたいこと:全体の質問を読まなかった。しかし、あなたは "BBCode Parser PHP"のためにgoogleする必要があります。達成したいと思うもののために、既に使用可能な実装があります。 – KingCrunch

+0

私は正規表現が行く方法だと思う – dotoree

答えて

0

[]は、あなたが心配する必要がある唯一の区切り文字であれば、あなたはおそらくstrtok

+0

あなたがそれを述べた後に私はstrtokを読むが、それを理解しなかった。私はここでそれをどのように使うことができるかわかりません。私は私の元の擬似アルゴリズムに固執するつもりだと思う。 –

0

を使用することができ、私は英語をうまく話せませんが、私はあなたの例を見て:

"This is a sample string [red] [h1]"

<font color='red'><h1>This is a sample string</h1></font> 

私があなたの場合:

$red = substr($chaine, strpos($chaine, '['), strpos($chaine, ']')); 
関連する問題