标题：通配符
基本概念
概念通配符是竞价排名广告的一项高级功能，当我们在广告创意中使用了这项功能之后，使用不同搜索字词的用户将看到不同的广告创意(虽然我们只制作了一个广告)。这将大大提高我们广告的相关性和实用性，从而提高广告的点击率，同时也大大提高了我们的工作效率[1]
[2]通配符是一类键盘字符,有星号(*)和问号(?).
当查找文件夹时,可以使用它来代替一个或多个真正字符；当不知道真正字符或者不想键入完整名字时，常常使用通配符代替一个或多个真正字符。星号（*）：可以使用星号代替0个或多个字符。如果正在查找以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/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 log/0[0-9]/error 
2 log/0?/error 
3 log/0*/error 
4 log/[0-9]+/error.1 
5 log/*/error.1 
6 log*/error.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 表:
Id
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing

应用举例
使用 % 通配符例子 1
现在，我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人：
我们可以使用下面的 SELECT 语句：
SELECT * FROM PersonsWHERE City LIKE 'Ne%'结果集：
Id
LastName
FirstName
Address
City
2
Bush
George
Fifth Avenue
New York
例子 2
接下来，我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人：
我们可以使用下面的 SELECT 语句：
SELECT * FROM PersonsWHERE City LIKE '%lond%'结果集：
Id
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
使用 _ 通配符例子 1
现在，我们希望从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人：
我们可以使用下面的 SELECT 语句：
SELECT * FROM PersonsWHERE FirstName LIKE '_eorge'结果集：
Id
LastName
FirstName
Address
City
2
Bush
George
Fifth Avenue
New York
例子 2
接下来，我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头，然后是一个任意字符，然后是 "r"，然后是任意字符，然后是 "er"：
我们可以使用下面的 SELECT 语句：
SELECT * FROM PersonsWHERE LastName LIKE 'C_r_er'结果集：
Id
LastName
FirstName
Address
City
3
Carter
Thomas
Changan Street
Beijing
使用 [charlist] 通配符例子 1
现在，我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人：
我们可以使用下面的 SELECT 语句：
SELECT * FROM PersonsWHERE City LIKE '[ALN]%'结果集：
Id
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
例子 2
现在，我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人：
我们可以使用下面的 SELECT 语句：
SELECT * FROM PersonsWHERE City LIKE '[!ALN]%'结果集：
Id
LastName
FirstName
Address
City
3
Carter
Thomas
Changan Street
Beijing