使用正则表达式
GOFR 有 2 种不同的模式匹配方式:使用通配符(与 Microsoft Office 使用的相同),或使用正则表达式。
通配符更简单但功能较弱,我们建议使用正则表达式。在内部,GOFR 会将通配符转换为正则表达式。
要在 GOFR 中使用正则表达式,请在多参数输入页面中,单击要查找的文本或要替换的文本框旁边的“选项”菜单(OPT),然后选择“正则表达式”。文本输入框的颜色会变为绿色。
您可以使用正则表达式,根据搜索模式转换结果。例如,您可以将 <名> <姓> 的模式转换为 <姓> <名>,修复数字格式等。请务必看一下下面的链接。
我们还整理了一份有关转换的帮助文件:“使用通配符和正则表达式转换文本”
网上有许多资源可帮助您理解正则表达式。GOFR 使用 .NET 正则表达式。我们喜欢 Microsoft 自己的页面,它非常全面:
https://learn.microsoft.com/dotnet/standard/base-types/regular-expression-language-quick-reference
下表列出了一些基础知识,帮助您入门:
| Metacharacter(元字符) | Behavior(行为) | Example(示例) |
|---|---|---|
* |
匹配前面的字符或子表达式零次或多次。 等效于 {0,}。 |
zo* 匹配 "z" 和 "zoo"。 |
+ |
匹配前面的字符或子表达式一次或多次。 等效于 {1,}。 |
zo+ 匹配 "zo" 和 "zoo",但不匹配 "z"。 |
? |
匹配前面的字符或子表达式零次或一次。 等效于 {0,1}。当 ? 紧跟在任何其他限定符(*、+、?、{n}、{n,} 或 {n,m})之后时,匹配模式为非贪婪模式。非贪婪模式会尽可能少地匹配所搜索的字符串。默认的贪婪模式会尽可能多地匹配所搜索的字符串。 |
zo? 匹配 "z" 和 "zo",但不匹配 "zoo"。o+? 匹配 "oooo" 中的单个 "o",而 o+ 匹配所有的 "o"。do(es)? 匹配 "do" 或 "does" 中的 "do"。 |
^ |
匹配所搜索字符串开头的位置。如果将多行选项 (?m) 放在模式的开头,则 ^ 还会匹配 \n 之后的位置。当用作方括号表达式中的第一个字符时, ^ 表示对字符集取反。 |
^\d{3} 匹配所搜索字符串开头的 3 个数字。[^abc] 匹配除 a、b 和 c 之外的任何字符。 |
$ |
匹配所搜索字符串末尾的位置。如果将多行选项 (?m) 放在模式的开头,则 $ 还会匹配 \n 之前的位置。 |
\d{3}$ 匹配所搜索字符串末尾的 3 个数字。 |
. |
匹配除换行符 \n 之外的任何单个字符。要匹配包括 \n 在内的任何字符,请使用类似 [\s\S] 的模式。 |
a.c 匹配 "abc"、"a1c" 和 "a-c"。 |
[] |
标记方括号表达式的开始和结束。 | [1-4] 匹配 "1"、"2"、"3" 或 "4"。[^aAeEiIoOuU] 匹配任何非元音字符。 |
{} |
标记限定符表达式的开始和结束。 | a{2,3} 匹配 "aa" 和 "aaa"。 |
() |
标记子表达式的开始和结束。子表达式可以保存以供以后使用。 | A(\d) 匹配 "A0" 到 "A9"。该数字会保存以供以后使用(要替换的文本中的 $1)。 |
| |
表示在两个或多个项之间进行选择。 | z|food 匹配 "z" 或 "food"。(z|f)ood 匹配 "zood" 或 "food"。 |
\ |
将下一个字符标记为特殊字符、字面量、反向引用或八进制转义。 | \n 匹配换行符。\( 匹配 "("。\\ 匹配 "\"。 |