正規表現、特により複雑な数式の周りに頭を抱えるのはむしろ時間がかかります。Regexpバックスラッシュの偶数(PHP)
現在、私は自分のマークアップ言語を書いており、エスケープして困っています。 *bold*
が私に<b>bold</b>
を与えるならば、それぞれの特殊文字を "エスケープ可能"にしておきたいのですが、それでは\*bold\*
はそのまま残しておいて、後でバックスラッシュを取り除くことはできますが、この考えを伝える。それに先立つ数または後方散乱電子が偶数の場合
- 左アスタリスク;:
は、どのように私は三つのグループを選択することができます - アスタリスク間の内容;
- それに先行するBSの数が偶数の場合は、アスタリスクを右にします。
正規表現を1つ使用しますか? PHPのpreg_replace
に準拠する必要があります。
この\\*(\*)\S(.)+?\S\\*(\*)
は、アスタリスクとコンテンツの両方を3つのグループとして選択しますが、「偶然性」やものをチェックしません。
UPDATE:
2番目の段落は、より良い私が(行われた変更は、完全にポイントを逃したので、もうそれを変更しないでください)何を意味するのか説明するために変更されました。
さらに、これにより作業が簡単になる場合は、最初に任意の二重バックスラッシュを解析して、アスタリスクの前にバックスラッシュを1つだけ確認する必要があります。
'\\ * bold \\ *'は '* bold * 'を生成しますか? – kennytm
これはRegExではなく、* parser *の仕事によく似ています。 – deceze
@KennyTM固定、ありがとうございました! @deceze私は知りませんが、Regexpsでは人々が時にはそれらを使ってどのように魔法のことをしているのか考えることができないのはなぜか分かりません。 – Maurycy