正規表現:
/@([\S]*?(?=\s)(?!\. ))/g
与えられた文字列:
'this string has @var.thing.me two strings to be @var. replaced'.replace(/@([\S]*?(?=\s)(?!\. ))/g,function(){return '7';})
期待される結果:
'this string has 7 two strings to be 7. replaced'
「より良く」したい場合は、Razor Htmlエンコード式を一致させようとしていますが、終了ピリオドとそれに続くスペースを一致させない場合に注意してください。上記のテストケースは、2番目の(短い)@var
でそれを示していますが、最初のテストケースは次のようにキャプチャします@var.thing.me