通配符
通配符(英語:)有以下意思:
电信
在电信中,通配符可用于代替不确定字符。
電腦
在電腦(軟體)技术中,通配符可用于代替单个或多个字符。[1] 通常地,星号“*”匹配0个或以上的字符,问号“?”匹配1个字符。
文件和目录
在CP/M、DOS、Microsoft Windows和类Unix操作系统中描述文件名(或路径)时,星号(*
)匹配零个或多个任意字符、问号(?
)匹配零个或不多于问号个数的任意字符。如:123???
将匹配 1231
或 12313
,但不会匹配 123991991
。
在Unix shell和Windows PowerShell中,方括号([
和]
)括起来的字符范围匹配在此范围内的任意字符,例如:[A-Za-z]
匹配任意的大小写字母。Unix shells 可以在用括号括起来的指定字符前加一个"!"来表示否定。匹配到多个文件或路径的通配符模式称为glob扩展。
数据库
在SQL中,通配符可用于"LIKE"表达式中,百分号(%)匹配零个或多个字符,下划线(_)匹配单个字符。Transact-SQL中还支持使用方括号("["和"]")来匹配列表集和字符范围,在前面加一个 ^ 表示否定,将匹配所有未在括号中指定的字符。在Microsoft Access中,通配符可用于"LIKE"表达式中,星号(*)匹配零个或多个字符,问号(?)匹配单个字符。在 SAP 中加号(+)匹配一个字符。
正则表达式
在正则表达式中,英文句号(.)匹配单个字符,结合一个星号(.*)匹配任意多个字符。
效率
在针对较长字符串匹配或对大量的字符串进行匹配时应该注意,后匹配(ABC*)比前匹配(*ABC)有着十分明显的效率优势。因为后匹配(ABC*)可以立即排除那些不是以"A"开头的记录,接着排除第二个字符不是"B"的;而前匹配(*ABC)需要尝试匹配每一个字符,至少直到找到了"ABC"。在一些需要高性能的环境应该尽量避免使用前匹配,或者通过其他条件筛选减少了数据量后再使用前匹配搜索。
参考资料
- . [2016-11-21]. (原始内容存档于2016-11-21).