文本字段的正则校验|飞书低代码平台

文本字段的正则校验|飞书低代码平台

飞书低代码平台手册精选NaN-NaN-NaN
产品功能
概述
「正则表达式」可以被认为是一种语言,用这种语言书写出来的字符串通常叫做模式(pattern),这些模式描述了一些规则,这些规则可以去匹配或寻找一系列符合规则的字符串。概括起来就是”描述字符串的字符串”
「正则表达式」的功能特点:
  • 灵活性、逻辑性和功能性都非常强。
  • 可以迅速地用极简单的方式达到字符串的复杂控制。
所以对刚接触的人来说,可能会觉得晦涩难懂,但是一旦熟悉掌握了使用方法,就会发现它的方便好用。
功能说明
在飞书低代码平台中,支持对「数据 - 对象」中的「文本」类型字段进行「正则校验」
  • 验证给定字符串是否符合「正则表达式」的过滤逻辑(匹配)。
  • 并且可通过「正则表达式」,从字符串中获取我们想要的特定部分。
如下图所示,开启「正则校验」功能后,可填写「正则表达试」、「格式错误提示」
250px|700px|reset
image.png
语法说明
组成:普通字符+特殊字符(元字符)
  1. 普通字符:A-Za-z0-9
  1. 元字符:具有特殊意义的专用字符
类型
字符
描述
举例
定位符
^
匹配输入字符串开始的位置。如果设置了REGEXP对象的Multiline属性,^还会与\n 或 \r之后的位置匹配
^download能匹配"download_finish",但不能匹配"finish_download"
$
匹配输入字符串结束的位置。如果设置了REGEXP对象的Multiline属性,$还会与\n 或 \r之前的位置匹配
download$能匹配"finish_download",但不能匹配"download_finish"
限定符
*
匹配前面的子表达式零次或多次(≥0)
zo*能匹配"z"和"zoo"
+
匹配前面的子表达式一次或多次(≥1)
zo+能匹配"zo"和"zoo",但不能匹配"z"
?
匹配前面的子表达式零次或一次(0 | 1)
do(es)?能匹配"do"或"does"中的"do"
{n}
n是一个非负整数,匹配确定的n次。
o{2}不能匹配"Bob"中的'o',但能匹配"food"中的两个'o'
{n,}
n是一个非负整数,至少匹配n次。{0,}等价于*,{1,}等价于+
o{2,}不能匹配"Bob"中的'o',但能匹配"foooood"中的所有'o'
{n,m}
n,m均是非负整数,且n≤m,最少匹配n次且最多匹配m次。{0,1}等价于?
o{1,3}匹配"foooood"的结果是:ooo,oo
?
紧跟上述任何限定符后面时,匹配模式变为非贪婪。默认是贪婪匹配
o{1,3}?匹配"foooood"的结果是:o,o,o,o,o
一组字符
x|y
匹配x或y
m|food能匹配m或food,(m|f)ood能匹配mood或food
[xyz]
字符集合。匹配所包含的任意一个字符
[abn]可以匹配"plain"中的a,n
[^xyz]
负值字符集合。匹配未包含的任意字符
[^abn]匹配"plain"的结果是p,l,i
[a-z]
字符范围。匹配指定范围内的任意字符
[a-m]可以匹配a到m范围内的任意字符,匹配"plain"的结果是l,a,i
[^a-z]
负值字符范围。匹配任何不在指定范围内的任意字符
[a-m]可以匹配不在a到m范围内的任意字符,匹配"plain"的结果是p,n
简写字符
.
匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,可使用 [.\n]。
-
\d
匹配一个数字字符。等价于 [0-9]
-
\D
匹配一个非数字字符。等价于 [^0-9]
-
\s
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
-
\S
匹配任何非空白字符。等价于 [^ \f\n\r\t\v]
-
\w
匹配包括下划线的任何单词字符。等价于[A-Za-z0-9_]
-
\W
匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'
-
其他字符
\
转义字符
\*, \+, \?, \\, \(, \)……
(pattern)
匹配 pattern 并获取这一匹配
(?:pattern)
匹配 pattern 但不获取匹配结果
download_start|download_finish 可以用 download_(?:start|finish) 代替
(?=pattern)
正向预查,在任何匹配pattern的字符串开始处匹配查找字符串
'Windows(?=95|98|NT|2000)' 能匹配 "Windows2000" 中的 "Windows" ,但不能匹配 "Windows3.1" 中的 "Windows"
(?!pattern)
负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串
'Windows(?!95|98|NT|2000)' 能匹配 "Windows3.1" 中的 "Windows",但不能匹配 "Windows2000" 中的 "Windows"
\b
匹配一个单词边界,也就是指单词和空格间的位置
'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'
\B
匹配非单词边界
'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'
示例说明
  1. 验证是否为数字(是否带小数点、正负都行):-?[0-9]+(\\.[0-9]*)?
  1. 美国社会安全号码(格式:999-99-9999):
250px|700px|reset
  1. 在 2 的基础上,希望输入 999999999 也正确,则:
250px|700px|reset
  1. 美国汽车牌照格式(格式:9999AB):
250px|700px|reset
参考资料 & 工具
先进生产力和业务协同平台
联系我们立即试用

先进团队,先用飞书

欢迎联系我们,飞书效能顾问将为您提供全力支持
分享先进工作方式
输送行业最佳实践
全面协助组织提效
联系我们立即试用