萬用字元
萬用字元(英語: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).