通配符
描述如下:
通配符示例 滿足條件 不滿足條件
*:任意數量的字符 A*,,ASSA
?: 任意字符A?CABC,AAC,,A22C
#:任意數字字符 1#3103,113,,1223,1333
[]:大括號中的任意單個字符 A[BC]DABD,,AAD,ADD
!: 通配符任何不在括號內的字符 A[!BC]DAAD,,ACD
-:任意范圍內的通配符 A[ac]DAaD,AbD,,AeD,AfD
A[1-3]DA1D,A2D,,A5D,A6D
%/ 或 * 中的通配符是什么? 這樣比較容易理解,謝謝
這個和版本有關系。
第一個是 ANSI-89 規范,第二個是 ANSI-92 規范。 2003年以后的版本可以定義ANSI-92的使用。
簡單來說,2003年之后使用%作為通配符,之前的版本使用*作為通配符,但是在2003年,需要在【工具】-【選項】中找到【表/查詢】選項卡并進行設置。
檢查下面的兼容語法和當前數據庫,以便您可以在其中使用 % 通配符。
在通配符中,? 方法
通配符代表0到9之間的任意單個數字。根據查詢的相關公開信息,顯示為: 通配符 當使用“查找和替換”對話框根據需要查找和替換數據庫或項目中的數據時,使用此通配符設置為通配符任意數量的字符,可用作字符串中的第一個字符 第一個或最后一個字符用于表示 0 到 9 之間的任何單個數字。
通配符
支持兩組通配符,因為它支持結構化查詢語言的兩個標準(條件)。
ANSI-89、ANSI-92。
通常,在數據庫(例如 *.mdb 和 *.accdb 文件)上運行查詢和查找和替換操作時,會使用 ANSI-89 通配符。
對項目運行查詢時,使用 ANSI-92 通配符訪問連接到 SQL 數據庫的文件。 該項目使用 ANSI-92 標準,因為 SQL 使用該標準。
ANSI-89 通配符
* ,匹配任意數量的字符,星號 (*) 可以在字符串中的任何位置使用。
示例:wh* 可以匹配what、white、why,但不能匹配watch。
? , 匹配任何單個字母字符。
示例:B?ll 匹配 ball、bell 和 bill。
[] ,匹配括號內的任何單個字符。
示例:B[ae]ll 匹配 ball 和 bell,但不匹配 bill。
! , 匹配不在括號內的任何字符。
示例:b[!ae]ll 匹配 bill 和 bull,但不匹配 ball 或 bell。
- ,匹配一個字符的任意范圍。 范圍必須按升序指定(A 到 Z,而不是 Z 到 A)。
示例:b[ac]d 匹配 bad、bbd 和 bcd
# ,匹配任何單個數字字符。
示例:1#3S 可匹配 103、113 和 123。
ANSI-92 通配符
% ,匹配任意數量的字符。 它可以用作字符串中的第一個或最后一個字符。
示例:wh% 匹配what、white 和why,但不匹配or watch。
_ ,匹配任何單個字母字符。
示例:B_ll 匹配 ball、bell 和 bill
[] ,匹配括號內的任何單個字符。
示例:B[ae]ll 匹配 ball 和 bell,但不匹配 bill。
^ , b[^ae]ll 匹配 bill 和 bull,但不匹配 ball 或 bell。
- ,匹配一個字符的任意范圍。 范圍必須按升序指定(A 到 Z,而不是 Z 到 A)。
示例:b[ac]d 匹配 bad、bbd 和 bcd。
擴展信息:
在查詢設計中使用這些通配符的簡單示例:
1. 添加顯示的表格并關閉“顯示表格”對話框。
2. 添加要查看的字段作為查詢結果。
3. 運行查詢并得到以下結果。
4. 再次打開查詢設計,添加項目名稱的輸入提示。
5. 現在運行查詢,假設您不知道確切的項目名稱,但知道項目名稱包含單詞“”。 單擊“確定”。
6. 執行上述查詢不會產生任何結果。 這是因為在項目名稱字段中查找精確匹配。 它正在尋找名稱中帶有“”的項目。 如果您希望用戶能夠輸入通配符來替換未知字符,那么您需要調整標準(條件)并包含 Like 運算符。
7. 運行查詢時,用戶可以使用 Like 通配符來替換任意數量的字符。
8. 假設您想了解有關“橋”一詞的項目,但您不確定它在哪里。 您可以添加一個 * 來替換“”一詞之前的任意數量的字符,然后添加另一個 *。 單擊“確定”。
9. 用戶總是知道他們輸入的通配符。 但有些用戶可能不知道他們可以輸入的通配符。 在這種情況下,您可以自己輸入通配符。 在這種情況下,在Like操作符和參數提示之間,可以添加這些通配符,現在有一種非常具體的寫法。
在引號后面的單詞后,輸入您正在使用的通配符。 在本例中,我們使用“*”來替換任意數量的字符。 現在將其添加到參數中。 為此,需要使用與號 (&) 和空格。 現在重復此步驟并添加另一個與號 (&),因為添加了通配符,無論用戶輸入什么標準項目名稱,后跟引號“*”。
10. 現在再次運行我們的查詢。 在提示符處輸入不帶任何通配符的單詞:“”。 結果看起來像這樣 -
11. 查詢現在將跟蹤此處輸入的所有通配符。 只需輸入“”并按 Enter 鍵即可。
12.現在得到搜索的結果,無論用戶輸入什么,結果都是一樣的。 如果您期望在項目標題中找到“擴展”一詞。 然后,只需鍵入“擴展”并單擊“確定”。
13. 使用此查詢可以更輕松地搜索名稱中帶有“擴展名”的項目。 結果還可能包含項目名稱,其中“擴展”是單詞的一部分。
什么是通配符以及如何使用它們
通配符是一種特殊的語句,主要包括星號(*)和問號(?),用于模糊搜索文件。 查找文件夾時,可以用它來替換一個或多個真實字符; 當您不知道真實字符或懶得輸入全名時,您經常使用通配符來替換一個或多個真實字符。 其實“*Not?paOd”可以對應【*可以代表任意字符】;【? 只代表單個字符】;【ao代表a和o之間的選擇】,以此類推。
通配符優先級
對于使用通配符模式的每個資源,必須確定將應用哪種通配符模式。 例如,假設有兩個模式:
/usr/local/*.log
和
/usr/local/user1/*.log
字符串 /usr/local/user1/x.log 與這兩種模式匹配。
為了解決這種不明確的情況,應用優先規則。 模式越具體,其優先級越高。 根據這個原則,/usr/local/user1/x.log 在匹配 /usr/local/*.log 模式之前先匹配 /usr/local/user1/*.log 模式。 由于找到了匹配項,任何可應用于與該模式匹配的對象的策略都將適用。
下表顯示了通配符元素的優先級。 表中較高的元素優先于表中較低的元素。
表:通配符元素優先級規則
優先級元素示例
1 精確字符 a、*、\
2 個字符范圍 [Aa], [[:digit:]]
3 任何字符?
4 個重復的精確字符 a+
5 重復字符范圍 [Aa]+, [[:digit:]]+
6 有重復的字符嗎?+
7 任意字符串*
根據資源的類型,優先級是通過從開始到結束逐個元素地比較模式來確定的(反之亦然)。 匹配文件名的模式是從頭到尾進行比較。 匹配主機名的模式從頭到尾進行比較。
除了兩個模式被視為相同之外,較長的模式將被視為比較短的模式更具體,除非較長的字符串由于星號 (*) 而較長。
通配符優先級示例
表 4 按優先級從高到低的順序顯示文件名和主機名通配符模式。
表 4. 通配符模式優先級示例
優先級 文件名模式 主機名模式
1 日志/0[0-9]/錯誤
2 日志/0?/錯誤
3 日志/0*/錯誤
4 日志/[0-9]+/錯誤.1
5 日志/*/錯誤.1
6 日志*/錯誤.1
7 日志*/錯誤
8 日志*/錯誤* *
9 對數*
10 **
當兩個模式之間的唯一區別是字符集中指定的字符時,優先級是通過逐字比較包含模式的兩個字符串來確定的。 僅當要匹配的字符集包含一些相同的字符時才必須考慮這一點。 如果兩個集合中沒有公共字符,則任何給定字符串最多只能匹配這兩種模式之一。