我正在尝试更改 Google 表格中部分文本字符串(子字符串)的大小写。
我尝试过将 PROPER 函数应用于 REGEXREPLACE 内的正则表达式捕获组,但失败了。
PROPER 函数(也包括 UPPER 和 LOWER)被简单地忽略。
示例公式经过简化以说明问题。
正确的失败
=REGEXREPLACE(
"POPCORN",
"^([[:upper:].*)",
PROPER("$1"))
="POPCORN"
如果我使用 REGEXEXTRACT 函数来提取字符串,我可以将其包装在 PROPER 中,并且它的行为符合预期。
正确的成功
=PROPER(
REGEXEXTRACT(
"POPCORN",
"^([[:upper:].*)")
="Popcorn"
能够将 REGEXREPLACE 与 PROPER 一起使用将简化公式。
而不是使用:
正确的失败
=REGEXREPLACE(text,regex,
PROPER("$1"))
我正在使用以下方法:
正确的成功
=SUBSTITUTE(text,
REGEXEXTRACT(text,regex),
PROPER(REGEXEXTRACT(text,regex))))
或者一个变体
=LET(str,REGEXEXTRACT(text,regex),
SUBSTITUTE(text,str,PROPER(str)))
有没有办法调整在 REGEXREPLACE 函数中无法成功使用 PROPER 的公式中的语法?
我认为没有办法简化你的公式。
PROPER("$1")
应用于字符串"$1"
而不是匹配项,并且无法更改此行为。