Skip to content
Back to top

# 正则表达式

正则表达式定义了可用于确定文本中是否出现特定字符序列的模式。

在 UltraSearch 中，正则表达式可用于搜索名称符合特定模式的文件和文件夹。

要使用正则表达式进行搜索，请在搜索词前放置一个波浪号 `~` 。例如，输入 `~a|b` 将查找所有名称包含“a”或“b”的文件和文件夹。

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

表达 | 语法 | 说明 | 示例
--- | --- | --- | ---
任何字符 |
    .
| 匹配除换行符外的任何单字符。 | `a.o` 匹配 "about "中的 "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 "和 "旁边 "中的 "bes "匹配，但不与 "下面 "中的 "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://www.jam-software.com/redirects/?regex_wiki>` __。

关于正则表达式中可使用的所有特殊字符的说明，请访问` <https://www.jam-software.com/redirects/?regex_syntax_info>` __ 。

以下工具可帮助您形成正则表达式：

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

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

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

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

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