1

以下の質問をして考えた結果、必要なのはこの正規表現だけだと思います。それを行う方法がわからない。

![anycharacter](anycharacter)[anycharacter](anycharacter)

<原題・メッセージ>

PHP Markdown Extra - 画像を許可しない

現在、マークダウンが許可されている領域で画像を非表示にするように css を設定しています。マークダウン画像構文を使用すると画像が表示されないようにしたいと思います。私は実際にはそれをリンクに変えることを望んでいますが、単にそれを許可しないことは問題ありません. チェックする正規![text](imagelink)表現はうまくいくと思いますが、それを行うか、それが最良の選択肢であるかどうかを知るには、正規表現に十分に精通していません。

-編集- 現在、preg_replace を preg_replace('/!\[/', "[", $text );実行していますが、! 場合によっては、別の理由があるかもしれません ![ が表示されます。![anycharacter](anycharacter)置換の方法を知る必要があるだけだと思います[anycharacter](anycharacter)

4

1 に答える 1

2

これは実際にはhttp://core.svn.wordpress.org/tags/1.5.1.3/wp-content/plugins/markdown.phpからの私のコードではありませんが、それを使用して _DoImages_reference_callback($matches ) および _DoImages_inline_callback($matches) 関数ですが、これは単なる要点です。

$text = preg_replace_callback('{
    (               # wrap whole match in $1
      !\[
        (.*?)       # alt text = $2
      \]

      [ ]?              # one optional space
      (?:\n[ ]*)?       # one optional newline followed by spaces

      \[
        (.*?)       # id = $3
      \]

    )
    }xs', 
    '_DoImages_reference_callback', $text);

#
# Next, handle inline images:  ![alt text](url "optional title")
# Don't forget: encode * and _

$text = preg_replace_callback("{
    (               # wrap whole match in $1
      !\\[
        (.*?)       # alt text = $2
      \\]
      \\(           # literal paren
        [ \\t]*
        <?(\S+?)>?  # src url = $3
        [ \\t]*
        (           # $4
          (['\"])   # quote char = $5
          (.*?)     # title = $6
          \\5       # matching quote
          [ \\t]*
        )?          # title is optional
      \\)
    )
    }xs",
    '_DoImages_inline_callback', $text);
于 2012-04-06T20:51:11.043 に答える