あるパターンを別のパターンに置き換えようとしている場合があります。私の問題は、それらのすべてではなく、そのパターンの最後のオカレンスだけを置き換える必要があるということです。私はこの質問見つけた:regexを使ってパターンの最後のものだけをJSと置換する
How to replace last occurrence of characters in a string using javascript
をしかし、それは私のニーズに適合しません。背景として、私はCSSルールを交換しようとしていますと言うだろうが、現在の例については、このテキストを見てみましょう:
abcd:bka:
bbb:aad:
accx:aaa:
bbb:a0d:
cczc:aaa:
は私だけBBBの値を交換したいと言うことができます。私の現在のルールは
text.replace(/(\s*bbb:)([^:]+)/,"$1aaa")
となりますが、最後のものを置き換えたいだけです。 私の現在のパターンは実際これよりも複雑ですが、擬似問題で十分です。
私はこの回答が好きです:http://stackoverflow.com/questions/843049/how-to-replace-last-occurence-of-a-word-in-javascript可能な限り一致させる前に。 –
@PeterEhrlich:代わりに '[\ s \ S] *'を使う必要があります(ドットは改行にマッチしません)。私は一般的に '。*'のような非特定の正規表現を使うのが好きです。うまくいくでしょう。そのパフォーマンスが私のものよりも良いか悪いかは、実際に使用されているテキストによって決まります。私は大文字では '。*'が引き起こすすべてのバックトラックのために悪化するだろうと思うだろう。 –