模式匹配语法

通配符模式可用于 Opus 中的许多函数,包括:

除了正则表达式之外,Opus 还支持更简单的通配符系统,称为标准模式匹配系统。使用通配符时,您需要指定一个由文本和特殊通配符混合而成的模式。每个标记用于匹配目标字符串中的一个或多个字符。举个简单的例子,模式 *.doc 匹配任何以文本 .doc 结尾的内容(换句话说,就是文档文件)。

标记
说明

#

# 后面的字符或表达式重复 0 次或多次。

例如: a#xb 匹配 abaxbaxxbaxxxb 等。 a#(xyz)b 匹配 abaxyzbaxyzxyzb 等。

?

匹配任意单个字符。

例如: a?b 匹配 aababbacbadb 等。它匹配 ab

|

用于分隔多个表达式,其中任何一个都可以匹配(实际上是一个运算符)。

例如: a(x|y|z)b 匹配 axbaybazb*.(gif|bmp|jpg) 匹配任何以 .gif.bmp.jpg 结尾的内容。

~

这是运算符,它否定后面的表达式。

例如: ~(*.doc) 匹配任何不以 .doc 结尾的内容 ~(*.(gif|bmp)) 匹配任何不以 .gif.bmp 结尾的内容

()

括号用于将多个字符组合成一个表达式。以上面的 a#(xyz)b 为例,括号用于将 xyz 组合成一个表达式。如果没有括号(即 a#xyzb),则只有 x 会被视为跟在 # 字符之后 - yzb 将被视为文本。 括号可以嵌套(如上面的 ~ 示例),以将多个表达式组合成一个更大的表达式。

例如: NEW-((*.doc)|(*_backup_*)) 匹配以 NEW- 开头并以 .doc 结尾或后跟字符串 _backup_ 的任何内容。

[]

匹配指定字符集中的任何单个字符。 您可以将字符集指定为单个字符(例如 [abdfg])或字符范围(例如 [a-j])或多个范围。

例如: [abc] 匹配 abc [af-j] 匹配 afghij [a-dh-kq-] 匹配 abcdhijkq 之后的任何字符 IMGP#[0-9].jpg 匹配 IMGP0158.jpg(或任何其它数字)。

[~]

匹配指定字符集中存在的任何字符。有关如何定义集合的信息,请参阅 []

例如: [~pqr] 匹配除 pqr 之外的任何字符

*

匹配任意数量的字符,包括零个字符。这是 #? 的同义词。 *.doc 等价于 #?.doc。 例如: abc*xyz.*q 匹配以 abc 开头、以 xyz 结尾并以 q 结尾的任何文件扩展名的任何文件名。

'

撇号称为转义字符

模式字符串中不是通配符的任何字符都将被视为文本 - 文本必须与目标字符串中的字符完全匹配。但是,如果确实希望将通配符用作文本本身,则必须通过在其前面添加撇号来对其进行转义。

例如: 如上所述,a#xb 匹配 abaxbaxxbaxxxb 等。 a'#xb 将只匹配 a#xb

grp:

使用通配符匹配文件名时,这是一种引用由 文件类型组 定义的所有文件扩展名的简写方法。 例如,Images组可能包含文件扩展名 .jpg.bmp.gif。如果您希望某个命令自动选择这些类型的文件,可以使用以下命令: Select *.(jpg|bmp|gif) 更好的方法是使用 grp: 标记自动包含该组中的所有文件扩展名: Select grp:Images

这更容易阅读(和输入!),而且如果您曾经在相关组中添加或删除文件类型,则任何引用该组的模式都将自动反映新的更改。

例如: (grp:Images|grp:Documents) 匹配ImagesDocuments文件类型组中的任何文件

最后更新于