使用正则表达式

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 匹配换行符。\( 匹配 "("。\\ 匹配 "\"。