用于构建正则表达式的元字符 (Maritime Charting)
通过正则表达式校验,可以同时校验字符串值的值和格式。字符串字段使用字母数字字符串作为值。这些字段包含要素的名称、测量值(高度、长度、宽度和面积)、z 值和元数据(例如,要素的创建日期)。例如,如果要查找社保号码格式不正确的记录,可以在 SSN 字段中输入“\b[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]\b”。该校验将返回具有 123456789、123-ab-4567、1123-34-12345 和 123-4567 等值的记录。
正则表达式校验也可用于根据值范围来校验文本字符串。要设置这些值的格式,可以定义各种参数。这些参数由元字符和缩写组成。元字符可帮助您增加查询的复杂程度,而缩写可提供用于在查询中包含特定类型值的快捷方式。
下面所述的元字符是可在查询中使用的运算符,用于通过正则表达式校验来确定要匹配的内容。
元字符 |
描述 |
示例 |
---|---|---|
. |
匹配各个字符。 |
x.y.z 匹配字符串,例如 x1y0z 或 xaybz。 |
[ ] |
包含要匹配的各个字符以及值范围。 |
[xyz] 匹配包含 x、y 或 z 的字符串。 |
^ |
该运算符位于表达式开头时,用于匹配起始输入。该运算符位于括号内并且后接字符时,用于对后接的字符取反。 注: 如果后接加括号的组,则匹配组内的字符。 |
[^abc] 匹配不包含 a、b 和 c 任意组合的字符串。匹配的字符串包括 bat 和 bar,但不包括 cab。^[xyz] 匹配以 x、y 或 z 开头的字符串。 |
- |
指示要匹配的值范围。 注: 该范围必须用括号括起来。 |
[1–5] 匹配诸如 12345 或 26589 之类的字符串,但不匹配 6789。 |
? |
前面的字符或值范围是要匹配的表达式的可选部分。 |
Sept? 匹配 Sept 和 September,但不匹配 December。 |
+ |
可与前面的字符或值范围匹配一次或多次。 |
[0–9]+ 匹配 1、11、456 等等。 |
* |
可与前面的字符或值范围匹配零次或多次。 |
12*3 匹配 1223 和 123,但不匹配 223 或 23。 |
?? |
匹配可选字符或值范围的最小部分。 |
6(th)?? 匹配 6th。 |
+? |
匹配可以重复的字符或范围值的最小部分。 |
Ju+? 匹配 June 和 July,但不匹配 January。 |
*? |
匹配可以重复的字符或范围值的最小部分。 |
ea*? 匹配诸如 each、era 和 fare 等字符串。 |
( ) |
包含一组表达式和值。 |
(cat) 匹配诸如 category 和 concatenate 等字符串,但不匹配 cart。 |
\ |
允许元字符用作文本字符。 |
\+ 允许识别加号。 |
$ |
匹配基于最后一个字符的输入。 |
[123]$ 匹配以 1 2 或 3 结尾的字符串。 |
| |
匹配备选短语或拼写。 |
I|international 匹配 International 和 international。 |
! |
指示匹配项中不包含的字符。 |
c(a!b) 匹配 cat 或 can,但不匹配 cab。 |
缩写提供值范围的快捷方式。
缩写 |
描述 |
---|---|
\a |
任何字母数字字符 (a–zA–Z0–9) |
\b |
空白 |
\c |
任何字母字符 (a–zA–Z) |
\d |
任何十进制数 (0–9) |
\h |
任何十六进制数 |
\n |
新行 |
\q |
加引号的字符串 |
\w |
简单词语 ([a–zA–Z]+) |
\z |
整数 ([0–9]+) |
以下是正则表达式的示例:
要查找的字符串 |
正则表达式 |
---|---|
介于 1900-01-01 与 2099-12-31 之间且格式为 yyyy-mm-dd 的日期 |
((19)|(20))\d\d((0[1-9])|(1[012]))((0[1-9])|([12][0-9])|(3[01])) |
人名前后行的一部分 |
^.*Chris.*$ |
只包含字母字符的字符串字段 | [A-Za-z]* |