通配符
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
通配符(英語:wildcard character)有以下意思:
電信
在電信中,通配符可用於代替不確定字符。
電腦
在電腦(軟體)技術中,通配符可用於代替單個或多個字符。[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"。在一些需要高性能的環境應該儘量避免使用前匹配,或者通過其他條件篩選減少了數據量後再使用前匹配搜索。
相關
參考資料
- ^ What is wildcard?. [2016-11-21]. (原始內容存檔於2016-11-21).