regex Google表单:按大写拆分单词的自定义公式

7xllpg7q  于 2022-11-18  发布在  Go
关注(0)|答案(2)|浏览(129)

我想要想出一个脚本来为google sheet编写一个自定义公式。这个想法是要分割一个由多个单词组成的字符串。这个公式应该识别出有大写字母的单词并将它们分开。结果将是一个字符串,其中的单词被“,"分开。
下面是一个字符串的示例:

Nursing StudentStudentNurseNursing School

Desired Result:
Nursing Student,Student,Nurse,Nursing School

我曾尝试在Google Sheet中使用一个公式:

=split(regexreplace(A1,"[A-Z][^A-Z]*","$0"&char(9)),char(9))

但是,它会生成6个具有以下字符串的单元格:

Nursing Student Student Nurse Nursing School

有谁能帮我或者给予我点提示吗?

svmlkihl

svmlkihl1#

=REGEXREPLACE(A1,"(\B)([A-Z])",",$2")
  • 不是一个字的顺序。
  • [A-Z]大写字母。
  • 如果\B后面跟有大写字母,请将\B替换为,
l0oc07j2

l0oc07j22#

如果您计划在小写字母和大写字母之间插入逗号,可以使用以下任一方法:

=REGEXREPLACE(A1,"([a-z])([A-Z])","$1,$2")
=REGEXREPLACE(A1,"([[:lower:]])([[:upper:]])","$1,$2")

其中

  • ([a-z])/([[:lower:]])-捕获组1(稍后用来自替换模式的$1来引用):任何小写ASCII字母
  • ([A-Z])/([[:upper:]])-捕获组2(稍后用来自替换模式的$2来引用):任何大写ASCII字母

请注意,基于non-word boundary \Banother suggestion(可以写为=REGEXREPLACE(A1,"\B[A-Z]",",$0"))也将匹配_后面的大写字母和任何数字,因此如果您不希望出现这种行为,它可能会发生过载。

相关问题