通配符

字符串中用以代替其他任意字符的字符

通配符(英语:wildcard character)有以下意思:

电信

电信中,通配符可用于代替不确定字符。

  • 在高频自动链路建立协议中,通配符“?”匹配36个字符中的任一个,这36个字符由26个英文字母和10个数字组成。
  • 通配符在表示一个字符或者一个字符串时必须先定义。

电脑

电脑软件)技术中,通配符可用于代替单个或多个字符。[1] 通常地,星号“*”匹配0个或以上的字符,问号“?”匹配1个字符。

文件和目录

CP/MDOSMicrosoft Windows类Unix操作系统中描述文件名(或路径)时,星号*)匹配零个或多个任意字符、问号?)匹配零个或不多于问号个数的任意字符。如:123??? 将匹配 123112313,但不会匹配 123991991

Unix shellWindows PowerShell中,方括号([])括起来的字符范围匹配在此范围内的任意字符,例如:[A-Za-z] 匹配任意的大小写字母。Unix shells 可以在用括号括起来的指定字符前加一个"!"来表示否定。匹配到多个文件或路径的通配符模式称为glob扩展。

数据库

SQL中,通配符可用于"LIKE"表达式中,百分号(%)匹配零个或多个字符,下划线(_)匹配单个字符。Transact-SQL中还支持使用方括号("["和"]")来匹配列表集和字符范围,在前面加一个 ^ 表示否定,将匹配所有未在括号中指定的字符。在Microsoft Access中,通配符可用于"LIKE"表达式中,星号(*)匹配零个或多个字符,问号(?)匹配单个字符。在 SAP 中加号(+)匹配一个字符。

正则表达式

正则表达式中,英文句号(.)匹配单个字符,结合一个星号(.*)匹配任意多个字符。

效率

在针对较长字符串匹配或对大量的字符串进行匹配时应该注意,后匹配(ABC*)比前匹配(*ABC)有着十分明显的效率优势。因为后匹配(ABC*)可以立即排除那些不是以"A"开头的记录,接着排除第二个字符不是"B"的;而前匹配(*ABC)需要尝试匹配每一个字符,至少直到找到了"ABC"。在一些需要高性能的环境应该尽量避免使用前匹配,或者通过其他条件筛选减少了数据量后再使用前匹配搜索。

相关

参考资料

  1. ^ What is wildcard?. [2016-11-21]. (原始内容存档于2016-11-21). 

外部链接