请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

AlexZ 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-26 17:33  /   查看:882  /  回复:0
本帖最后由 AlexZ 于 2023-6-15 14:09 编辑

背景为了更方便灵活的处理单元格中的文本数据,继之前版本推出的 TEXTXXX 系列函数,此次新版本又新增了三个正则相关的函数,分别可以用于测试、替换、提取功能。

GC.REGEXREPLACE

说明:使用正则,替换文本中的字符
函数语法:=GC.REGEXREPLACE(text, regular_expression, replacement, [modifiers])


textregular_expressionreplacementresult
SpreadJS Worksheets.*tbookSpreadJS Workbook
2022/12/23(\d{2})/(\d{2})/(\d{4})$3-$1-$22022/12/23
John-Smith(\w{4})-(\w{5})$2 $1Smith John

GC.REGEXMATCH
说明:使用正则,测试是否在目标字符串中符合匹配
函数语法:=GC.REGEXMATCH(text, regular_expression, [modifiers])

示例:
textregular_expressionresult
SpreadJS Supports 400 functions\d+TRUE
My Name is (John Smith)\(([\w ]+)\)TRUE
Red[^Red]FALSE

备注
  • 此函数仅适用于文本(非数字)作为输入并返回逻辑值,即TRUE或FALSE作为输出。
  • 如果使用数字作为输入,请使用TEXT函数将它们转换为文本。
错误
  • 如果text或regular_expression的值类型不是text,则返回#VALUE!错误。
  • 如果参数长度<2,则返回#N/A错误。
  • 如果任何参数无效,则返回#NAME错误。

TRUE
=GC.REGEXMATCH("SpreadJS Supports  400 functions.", "\d+")
TRUE
=GC.REGEXMATCH("My Name is (John  Smith)", "\(([\w ]+)\)")
FALSE
=GC.REGEXMATCH("Red",  "[^Red]")
#VALUE!
=GC.REGEXMATCH("123", 123)
#N/A
=GC.REGEXMATCH("123")
#NAME?
=GC.REGEXMATCH(dddd, 123)

GC.REGEXREPLACE

说明:使用正则,替换目标字符串中符合匹配的字符
函数语法:=GC.REGEXREPLACE(text, regular_expression, replacement, [modifiers])

text
regular_expression
replacement
result
SpreadJS Worksheet
s.*t
book
SpreadJS Workbook
12/23/2022
(\d{2})/(\d{2})/(\d{4})
$3-$1-$2
2022-12-23
John-Smith
(\w{4})-(\w{5})
$2 $1
Smith John

备注
  • 此函数仅适用于文本(不是数字)作为输入并返回文本作为输出。
  • 如果需要一个数字作为输出,请尝试将VALUE函数与此函数结合使用。
  • 如果使用数字作为输入,请使用TEXT函数将它们转换为文本。
错误
  • 如果text或regular_expression的值类型不是text,则返回#VALUE!错误。
  • 如果参数长度<3,则返回#N/A错误。
  • 如果任何参数无效,则返回#NAME错误。

SpreadJS Workbook
=GC.REGEXREPLACE("SpreadJS Worksheet", "s.*t", "book")
2022-12-23
=GC.REGEXREPLACE("12/23/2022", "(\d{2})/(\d{2})/(\d{4})", "$3-$1-$2")
Smith John
=GC.REGEXREPLACE("John-Smith", "(\w{4})-(\w{5})", "$2 $1")
#VALUE!
=GC.REGEXREPLACE("123", 123, 123)
#N/A
=GC.REGEXREPLACE("123", "\d+")
#NAME?
=GC.REGEXREPLACE(dddd, "\w+", "aaaa")







0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部