通配符

一種特殊語句

通配符是一種特殊語句,主要有星號(*)和問號(?),用來模糊搜索文件。當查找文件夾時,可以使用它來代替一個或多個真正字元;當不知道真正字元或者懶得輸入完整名字時,常常使用通配符代替一個或多個真正的字元。

通配符是競價排名廣告的一項高級功能,當我們在廣告創意中使用了這項功能之後,使用不同搜索字詞的用戶將看到不同的廣告創意(雖然我們只製作了一個廣告)。這將大大提高我們廣告的相關性和實用性,從而提高廣告的點擊率,同時也大大提高了我們的工作效率。

類型


通配符是一類鍵盤字元。
當查找文件夾時;當不知道真正字元或者不想鍵入完整名字時,常常使用通配符代替一個或多個真正字元。
星號(*)
可以使用星號代替零個、單個或多個字元。如果正在查找以AEW開頭的一個文件,但不記得文件名其餘部分,可以輸入AEW*,查找以AEW開頭的所有文件類型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要縮小範圍可以輸入AEW*.txt,查找以AEW開頭的所有文件類型並.txt為擴展名的文件如AEWIP.txt、AEWDF.txt。
問號(?)
可以使用問號代替一個字元。如果輸入love?,查找以love開頭的一個字元結尾文件類型的文件,如lovey、lovei等。要縮小範圍可以輸入love?.doc,查找以love開頭的一個字元結尾文件類型並.doc為擴展名的文件如lovey.doc、loveh.doc。
通配符包括星號“*”和問號“?”
星號表示匹配的數量不受限制,而後者的匹配字元數則受到限制。這個技巧主要用於英文搜索中,如輸入““computer*”,就可以找到“computer、computers、computerised、computerized”等單詞,而輸入“comp?ter”,則只能找到“computer、compater、competer”等單詞。

使用模式


通配符優先順序
對於使用通配符模式的各種資源,Tivoli Access Manager for Operating Systems 必須確定將應用何種通配符模式。例如,假設有兩種模式:
/usr/localerror
4 log/[0-9]+/error.1
5 logerror.1
7 log*/error
8 log*/error* *
9 log*
10 * *
當兩個模式之間的唯一差別是字符集合中指定的字元時,將通過逐字比較包含模式的兩個字元串來確定優先順序。僅在要匹配的字符集包含一些相同字元時才必須考慮這一點。如果在兩個集合中沒有公共字元,則任一給定的字元串最多只能匹配這兩個模式中的一個。
路由配置中的通配符
在路由器的配置中,經常出現通配符。和子網掩碼一樣,都是以“0”或“1”表示,不過與子網掩碼所表示的意思卻不一樣。
子網掩碼所表示的是IP的網路位和主機位,而通配符則表示與IP是否匹配。
通配符同樣是32位,和IP地址一一對應,“0”位代表精確匹配,而“1“位代表不許匹配。例如路由器EIGRP的配置中:
RouterA(config)#router eigrp 100
RouterA(config-router)#network 10.0.0.0 0.0.0.255
RouterA(config-router)#network 192.168.1.0 0.0.0.255
10.0.0.0 0.0.0.255說明只要介面的IP地址是以“10”開頭就參與EIGRP進程。同理的,192.168.1.0 0.0.0.255說明只要IP是以192.168.1開頭的IP就符合。
SQL 通配符
在搜索資料庫中的數據時,SQL 通配符可以替代一個或多個字元。
SQL 通配符必須與 LIKE 運算符一起使用。
在 SQL 中,可使用以下通配符:
通配符描述
%替代零個或多個字元
_僅替代一個字元
[charlist]字元列中的任何單一字元
[^charlist]
或者
[!charlist]
不在字元列中的任何單一字元
原始的表
(用在例子中的):
Persons 表:
IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing

應用舉例


使用 % 通配符
例子 1
現在,我們希望從上面的 "Persons" 表中選取居住在以 "Ne" 開始的城市裡的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE City LIKE 'Ne%'結果集:
IdLastNameFirstNameAddressCity
2BushGeorgeFifth AvenueNew York
例子 2
接下來,我們希望從 "Persons" 表中選取居住在包含 "lond" 的城市裡的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE City LIKE '%lond%'結果集:
IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
使用 _ 通配符
例子 1
現在,我們希望從上面的 "Persons" 表中選取名字的第一個字元之後是 "eorge" 的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE FirstName LIKE '_eorge'結果集:
IdLastNameFirstNameAddressCity
2BushGeorgeFifth AvenueNew York
例子 2
接下來,我們希望從 "Persons" 表中選取的這條記錄的姓氏以 "C" 開頭,然後是一個任意字元,然後是 "r",然後是任意字元,然後是 "er":
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE LastName LIKE 'C_r_er'結果集:
IdLastNameFirstNameAddressCity
3CarterThomasChangan StreetBeijing
使用 [charlist] 通配符
例子 1
現在,我們希望從上面的 "Persons" 表中選取居住的城市以 "A" 或 "L" 或 "N" 開頭的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE City LIKE '[ALN]%'結果集:
IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
例子 2
現在,我們希望從上面的 "Persons" 表中選取居住的城市不以 "A" 或 "L" 或 "N" 開頭的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE City LIKE '[!ALN]%'結果集:
IdLastNameFirstNameAddressCity
3CarterThomasChangan StreetBeijing