0
私はPCRE |^/foo/(.*?)(?::(?:bar)?)?$|
または|^/foo/(.*?)(?::bar)?:?$|
を使用しています。これは交換になりますので、置き換え中に:
と:bar
を最後から取り除きたいと考えています。私は2つがまったく同じではないことを知っていますが、ここではあまり重要ではありません。どの正規表現が速いですか
私はPCRE |^/foo/(.*?)(?::(?:bar)?)?$|
または|^/foo/(.*?)(?::bar)?:?$|
を使用しています。これは交換になりますので、置き換え中に:
と:bar
を最後から取り除きたいと考えています。私は2つがまったく同じではないことを知っていますが、ここではあまり重要ではありません。どの正規表現が速いですか
最初は:
を確認するだけで済みますので、最初のものを使用します。 2番目の文字は、逆戻りする前に:bat
の最初の3文字と一致してから、:
を再度チェックすることができます。また、2番目のものは:bar:
と一致することができますが、最初のものは一致できません。実際の速度差は小さいでしょう。 2番目の方法は、次のように書かれたほうがよいでしょう。/^\/foo\/(.*?)(?::bar|:)?$/
デリミタとして正規表現のメタキャラクタを使用しないようにしてください。