私は、次の元の文字列を持っているを作ります_dev
の前に.min.js
を追加し、存在しない場合は.js
の前に追加します。これは、js/blog
またはjs/calculator
で始まり、.js
で終わる文字列にのみ適用する必要があります。は、JavaScriptの正規表現の一部オプション
最初は(js\/(?:blog|calculators)\/.+)(\.min\.js)$
を正規表現として開始し、次に$1_dev$2
を置換として開始しました。それは私の第3のストリングのために働くが、明らかに私が "ハード"のために.min.js
を探しているので、私の2番目のストリングには当てはまらない。だから、のように?
の非キャプチャグループに投げて、.min
をオプションにすることを考えました。さて、これは私の2番目の文字列のために動作しますが、私の3番目の文字列は、すべての調子が悪いです:
js/main_dev.js # Good
js/blog/foo_dev.js # Good
js/blog/foo.min_dev.js # Bad! _dev should be before the .min
私は、単に(\.min\.js|\.js)
をやってますが、無駄に含め、同じ行動ですべての結果をこの上で多くの順列を試してみました。ここでは、正規表現の101のペーストは、 "悪い"正規表現:https://regex101.com/r/bH3yP6/1
私はここで間違っていますか?
スピード違反のために私を逮捕した同じ名前の憲兵があります。 –
@CasimiretHippolyte:あなたの正規表現が速すぎるからです。 –
私はこの時点で正規表現を知らず、Turpinもgendarmeしていませんでしたが、彼は双眼鏡の使い方を知っていました。 –