0

読者が独自の方法でリンクを作成できるようにする予定です。HTMLの開始タグと終了タグを書くのに慣れていない方もやりやすいと思います。

許可および必須のカスタム リンク構造

++visible text part==invisible address part++

有効な構造化の例:
++stack overflow==http://stackoverflow.com/questions/ask++

私の要件

もちろん、ユーザーは複数のリンクを入力できます。

  1. そのため、すべてのリンク試行をチェックする必要があります。すべてのリンク構造が次のようにフォーマットされている場合++visible text part==invisible address part++
  2. 次に、非表示の住所部分を確認して検証する必要があります
  3. 最後に、表示されているテキスト部分からタグ (存在するかどうかに関係なく) を取り除きます。

私の質問

preg_match pattern そのため、カスタム リンク構造を検証するためにあなたの助けが必要です。また、2 つの部分が必要になることにも注意してください (つまり、表示テキスト部分の左側部分と、2 番目と 3 番目の要件に別々に一致する非表示アドレス部分の右側部分です。== ==

私の失敗した試験は

/++(.+)==(.+)++/

ありがとう、BR

4

2 に答える 2

2

試す

/\+\+(.+?)==(.+?)\+\+/

+は正規表現の特殊文字であり、エスケープする必要があります。

一致に改行文字を含める場合sは、終了区切り文字の後に追加します。/

于 2013-03-27T19:38:57.193 に答える
1

正規表現には 2 つの大きな問題があります。まず、+はご存じのように (使用するので) 予約済みの記号なので、エスケープする必要があります。

これにより、次の正規表現が得られます。/\+\+(.+)==(.+)\+\+/

それを使用すると、実際に機能する可能性がありますが、マークアップがまったくまたは一度も使用されない場合にのみ、それは PHP の正規表現が貪欲であるためです。これは、適切な修飾子を使用して解決できます。

これにより/\+\+(.+)==(.+)\+\+/U、完璧ではありませんが機能することがわかります。その後、その他の改善を行うことができます(.+)

于 2013-03-27T19:36:34.090 に答える