Skip to content
Back to top

# 正则表达式

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

在 TreeSize 中，正则表达式可用于查找符合正则表达式指定条件的特定文件和/或文件夹。支持特殊字符列表 。

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

表达式 | 语法 | 描述 | 示例
--- | --- | --- | ---
任意字符 | `.` | 匹配除换行符以外的任何单个字符。 | `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" 结尾的单词，如 "across" 和 "loss"。
集合中的任意一个字符 | `[]` | 匹配方括号中的任意一个字符。要指定字符范围，请列出起始和结束字符，并用短横线 (-) 分隔，如 [a-z]。 | `be[n-t]` 匹配 "between" 中的 "bet"，"beneath" 中的 "ben"，以及 "beside" 中的 "bes"，但不匹配 "below" 中的 "bel"。
集合中不包含的任意一个字符 | `[^...]` | 匹配不在 `^` 后面的字符集中的任何字符。 | `be[^n-t]` 匹配 "before" 中的 "bef"，"behind" 中的 "beh"，以及 "below" 中的 "bel"，但不匹配 "beneath" 中的 "ben"。
或 | `|` | 匹配 OR 符号 (|) 前后的表达式。主要用于分组。 | `(sponge|mud)` 匹配 "sponge bath" 和 "mud bath"。
转义字符 | `\` | 将反斜杠 (`\`) 后面的字符作为字面量匹配。这使您能够查找在正则表达式符号中使用的字符，例如 `{` 和 `^`。 | `\^` 搜索 `^` 字符。
重复 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/ （下载）