=REGEXREPLACE("string", "(ng)", UPPER("$1"))
上記は「string」を返しますが、「striNG」を返す必要があります。
これは、UPPER
が、キャプチャされたグループが置換された文字列ではなく、文字列 "$ 1"を大文字にしているためだと思われます。
REGEXREPLACE
で期待される結果を出力するにはどうすればよいですか?
これを2つの部分に分割して、後者を上部として返すことができます。 Gsheetsで正規表現内に上部をネストする方法がわかりません。
=REGEXEXTRACT(A1,"stri") & upper(REGEXEXTRACT(A1, "(ng)"))
これは私のために戻ってきました:
文字列> striNG
実際のデータに大きく依存しますが、これらはstring
に対しても機能します
=REGEXREPLACE("stri"&UPPER("ng"); "(ng)"; "$1")
=REGEXREPLACE("string";"(n)";"")&
UPPER(REGEXREPLACE("string";"([a-z]{4})";"")
=LEFT(REGEXREPLACE("string";"(w)";"$1");4)&
UPPER(RIGHT(REGEXREPLACE("string";"(w)";"$1");2))
すべての戻り値:striNG
これは、Wordng
またはその他のWordでNG
をstring
に置き換えますng
で構成
=REGEXEXTRACT(REGEXREPLACE("string"; "(ng)"; "NG"); "[a-zA-Z]{1,}")
この式は同じことをしますが、そうするためにUPPER()
を使用します:
=REGEXEXTRACT(REGEXREPLACE("string"; "(ng)"; UPPER("ng")); "[a-zA-Z]{1,}")
この式は、RIGHT()
を使用し、大文字を指定することにより、もう少し柔軟性を提供します。
=REGEXEXTRACT(REGEXREPLACE("string"; "(ng)"; RIGHT(UPPER("string"); 2)); "[a-zA-Z]{1,}")
この最後の式はどのWordでも使用できます。また、Wordの右側から末尾までの文字数をCAPS
edとすることで完全に調整可能です。
=REGEXEXTRACT(REGEXREPLACE("string";
RIGHT("string"; 2);
RIGHT(UPPER("string"); 2)); "[a-zA-Z]{1,}")