何か:
/(^|\.\s+)(foo3[^.]*\.)/
前の文をマークする期間を検索します(または最初の文の場合は、文字列の先頭)、スペース、そして、開始文字列が続く(中この場合、foo3
)、その後にすべての非期間文字がその文の終わりまで続きます。
デモ:http://www.rubular.com/r/ROl2odiDn5
は、ここでの文章が実際に実装されるかもしれない置き換える方法は次のとおりです。この例では
var str = "foo bar. foo3 bar3. foo2 bar2.";
var regex = /(^|\.\s+)(foo3[^.]*\.)/g;
str = str.replace(regex, "$1new sentence.");
alert(str);
、私は正規表現を使用して、余分なマッチした文字を置換して組み込む(期間前の文から)$1
を介して、その後に古い文を置き換える新しい文が続く。これにより、段落内の他のセンテンスの状態は変わらないことが保証される。 /g
(グローバル)フラグを使用するので、この例ではすべての一致する文が更新されることにも注意してください。最初の文のみを変更する場合は、g
を削除するか、より多くの開始語を含めることで、より具体的な文章にします。
デモ:http://jsfiddle.net/qPxFp/2/
文章が他の句読点( '!'や '?'など)で終わるとどうなりますか?文に小数または通貨が含まれていますか? –