まず、あなたの質問を正しく理解しているかどうかは本当にわかりません。からの静的な文字列置換の場合、fms2=10000
必ずしもfms2=30000
正規表現を使用する必要はありません。「通常の」文字列置換もそれを行います。しかし、もっとあると思いますか?どの言語を使用していますか?
2番目:「セーフモードをオフにすると、Cookieが置き換えられるため、セーフモードが再びオンになる」とはどういう意味ですか?ロジックを交換しますか?「オフにする」は実際には「オンにする」、またはその逆ですか?
第三に:あなたがおそらく気づいていないURLエンコーディングのようなあなたのデータにいくつかの追加の変更がありますか?
更新:
正規表現の私の推測は(PCRE構文-私はC ++にあまり精通していません)
/^(?=PREF\=)(.*?(?:PREF\=|&)fms2=).*?($|&.*)/
と取り換える
$130000$2
これは一致します
PREF=f1=50000000&fms2=10000&fms1=30000&fv=10.3.183
PREF=f1=50000000&fms2=&fms1=30000&fv=10.3.183
PREF=f1=50000000&fms1=30000&fv=10.3.183&fms2=123
PREF=fms2=123&f1=50000000&fms1=30000&fv=10.3.183
しかし、これは正規表現の問題だけではないようですね。問題が発生している場合、またはパターンの説明が必要な場合は、お知らせください。