# 正则表达式 (regex) 基础知识

下表提供了在 Cognex ViDi Suite 内使用正则表达式的一些基础知识。

定位标记
^ | 指定字符串或行的开头，例如 ^0 将匹配以 0 开头的字符串。 Note: 在括号内使用 ^ 符时，即 [^ 0]，^ 表示不启动。
$ | 指定字符串或行的结尾，例如 0$，将匹配以 0 结尾的字符串。
基本匹配
. | 匹配任何单个字符。 Note: 要匹配句点，必须使用斜杠来转义点。例如，您输入：\.
\d | 匹配 0123456789 范围内的任何数字。 还可以通过键入数字来表示实际数字 0-9。
\w | 匹配任何字母、数字和下划线字符 (_)。 区分大小写的实际字符可以通过键入字符 a-z 或 A-Z 来表示。
\s | 匹配空格。
具体字符
[...] | 方括号 [ ] 用于匹配特定字符，这些字符在方括号内定义。例如，[a-z]匹配 a 到 z 的一个小写字母，或 T[ao]p 将匹配 Tap 或 Top。括号可用于复合结构，例如 [A-C][0-3][g-i]，可以匹配字符串 A0g、A0h、B1i 和 C3g 的字符串。
重复
{...} | 花括号{ }用于表示重复。例如，t{2}返回两个t；[def]{3}返回三个字符，可以是 d、e 或 f；而.{1,4} 匹配 1 至 4 的任意字符。
* | 表示字符或数字的零个或多个实例。例如，a* 会匹配零个或多个字符。
+ | 表示字符的一个或多个实例。例如，[nop]+ 将匹配 n、o 或 p 字符中的一个或多个。
可选字符
? | 问号 ? 用于匹配零个或一个前面字符或组。例如，12?3 将匹配 123 或 13。 Note: 要匹配问号，必须使用斜杠来转义问号。例如，您输入:\?
分组
(...) | 括号用于定义字符组，使一对括号内的子模式构成一个组。这非常有利于从图像文件名中提取信息。例如，如果您策划图像使用某种命名约定，例如 Good_0001.png，并且只想返回那些图像，则可以使用 ^(Good.+)\.png$ 您还可以使用括号捕获嵌套组。使用上面的示例，可以根据数字细化搜索，例如 ^(Good(\d+))\.png$ 此外，也可在括号内使用上述量词以捕获模式。例如，如果要捕获大于 1000 的可能区域，则可以使用 (\d{4})x(\d{4}) 逻辑 OR 标识符 | 可用于表示不同的可能字符集。例如，如果您想在一组文件名中返回“scratch”，“dent”或“hole”，则可以使用 ^(Bad(\d+)(scratch|dent|hole))\.png$