Skip to content
Back to top

# 正则表达式

正则表达式 描述可以用于确定给定模式是否在文本中出现的字符串模式。

在 TreeSize 中，正则表达式可以用于查找符合正则表达式指定标准的特定文件和/或文件夹。支持`特殊字符列表 <https://www.jam-software.com/redirects/?regex_syntax_info>`_。

下表列出了一些最常用的语法，并提供了一些示例：

表达 | 语法 | 说明 | 示例
--- | --- | --- | ---
任何字符 | `.` | 匹配除换行符外的任何单字符。 | `a.o` 匹配 "around "中的 "aro "和 "about "中的 "abo"，但不匹配 "across "中的 "acro"。
零或更多 | `*` | 匹配前面表达式的零次或多次出现，并进行所有可能的匹配。 | `a*b` 匹配 "bat "中的 "b "和 "about "中的 "ab"。`e.*e` 匹配单词 "enterprise"。
一个或多个 | `+` | 至少匹配前面表达式中的一个表达式。 | `ac+` 匹配包含字母 "a "和至少一个 "c "的单词，如 "race "和 "ace"。`a.+s` 匹配单词 "access"。
字符串起始 | `^` | 匹配字符串的开头。 | `^[0-9]` 匹配以数字开头的字符串。
字符串结束 | `$` | 匹配字符串的结尾。 | `exe$` 匹配以 "exe "结尾的字符串。
词首 | `[[:<:]]` | 只匹配文本中以此为起始点的单词。 | `[[:<:]]in` 匹配以字母 "in "开头的单词，如 "inside "和 "into"。
结束语 | `[[:>:]]` | 仅在单词在文本中的这一点结束时匹配。 | `ss[[:>:]]` 匹配以字母 "ss "结尾的单词，如 "ross "和 "loss"。
集合中的任何一个字符 | `[]` | 匹配 [] 中的任意一个字符。要指定字符范围，请列出以破折号 (-) 分隔的起始和终止字符，如 [a-z]。 | `be[n-t]` 与 "之间 "中的 "bet"、"下面 "中的 "ben "和 "旁边 "中的 "beside "匹配，但不与 "下面 "中的 "bel "匹配。
任何一个不在该组中的字符 | `[^...]` | 匹配紧随 `^` 之后的字符集中不包含的任意字符。 | `be[^n-t]` 匹配 "before "中的 "bef"、"behind "中的 "beh "和 "bel "中的 "bel"，但不匹配 "bene beneath "中的 "ben"。
或者 | `|` | 匹配 OR 符号 (|) 之前或之后的表达式。多用于组中。 | `(sponge|mud)` 匹配 "海绵浴 "和 "泥浴"。
逃逸字符 | `\` | 将反斜杠 (`\`) 后面的字符作为字面量匹配。这使您能够找到在正则表达式符号中使用的字符，例如 `{` 和 `^`。 | `\^` 搜索 `^` 字符。
重复 n 次 | `{n}` | 匹配前面表达式的 n 次出现。 | `[0-9]{4}` 匹配任何 4 位数字序列。
分组 | `()` | 让您将一组表达式分组。如果要在一次搜索中搜索两个不同的表达式，可以使用分组表达式将它们组合在一起。 | 如果您希望搜索 `[a-z][1-3]` 或 `[0-9][a-z]`，您可以将它们组合：`([a-z][1-3])|([0-9][a-z])`。

## 更多实例

正则表达式 | 使用案例
--- | ---
`[0-9]` 或 `\d` | 查找名称中至少包含一位数字的所有文件/文件夹。
`a|b` | 查找名称中包含 "a "或 "b "的所有文件/文件夹。
`[^(A-Za-z)]` | 查找名称中至少包含一个不在 A-Z 或 a-z 范围内的字符的所有文件/文件夹。
`^E[0-9]{7}$` | 查找所有以 "E "开头、后跟正好 7 位数字的文件/文件夹。
`[A-Za-z]:\\([^\\]+\\){2,4}[^\\]+$` | 查找文件夹深度至少为 2、最多为 4 的所有文件/文件夹。
`[^\x00-\x7F]` | 查找包含无效 ASCII 字符的所有文件/文件夹。
`[^\P{C}]` | 查找所有含有无法打印的 Unicode 字符的文件/文件夹。
`[\xA0]` | 查找所有包含不可断开空格字符（Unicode NOBR, U+00A0）而非正常空格字符的文件/文件夹名称。
`[~\""#%&\*\:<>\?\/\\{|}]` | 查找所有包含 SharePoint 服务器上无效字符的文件和文件夹名称。
`^\s+.*` | 查找所有带空格的文件和文件夹。
`\s+(\.[^.]+)$` | 查找扩展名末尾有空格的文件。
`.*\s+$` | 查找名称末尾有空格的文件夹。

## 创建正则表达式的工具

https://regex101.com/ （在线）

http://regexpal.com/ （在线）

http://sourceforge.net/projects/regexpeditor/ （下载）

http://sourceforge.net/projects/regextester/ （下载）

http://sourceforge.net/projects/regaxe/ （下载）