通配符


通配符

文章插图
通配符通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜寻档案 。当查找资料夹时,可以使用它来代替一个或多个真正字元;当不知道真正字元或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字元 。实际上用“*Not?pad”可以对应Notepad\MyNotepad【*可以代表任何字元串;?仅代表单个字元串,但此单字必须存在】;Notep[ao]d可以对应Notepad\Notepod【ao代表a与o里二选一】,其余以此类推 。
【通配符】通配符是竞价排名广告的一项高级功能,当我们在广告创意中使用了这项功能之后,使用不同搜寻字词的用户将看到不同的广告创意(虽然我们只製作了一个广告) 。这将大大提高我们广告的相关性和实用性,从而提高广告的点击率,同时也大大提高了我们的工作效率 。
基本介绍中文名:通配符
包括:星号(*)和问号(?)
作用:代替一个或多个真正字元
属性:特殊语句
类型通配符是一类键盘字元 。当查找资料夹时;当不知道真正字元或者不想键入完整名字时,常常使用通配符代替一个或多个真正字元 。星号(*)可以使用星号代替零个、单个或多个字元 。如果正在查找以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]/error2 log/0?/error3 log/0*/error4 log/[0-9]+/error.15 log/*/error.16 log*/error.17 log*/error8 log*/error* *9 log*10 * *当两个模式之间的唯一差别是字元集合中指定的字元时,将通过逐字比较包含模式的两个字元串来确定优先权 。仅在要匹配的字元集包含一些相同字元时才必须考虑这一点 。如果在两个集合中没有公共字元,则任一给定的字元串最多只能匹配这两个模式中的一个 。路由配置中的通配符在路由器的配置中,经常出现通配符 。和子网掩码一样,都是以“0”或“1”表示,不过与子网掩码所表示的意思却不一样 。子网掩码所表示的是IP的网路位和主机位,而通配符则表示与IP是否匹配 。通配符同样是32位,和IP位址一一对应,“0”位代表精确匹配,而“1“位代表不许匹配 。例如路由器EIGRP的配置中:RouterA(config)#router eigrp 100RouterA(config-router)#network 10.0.0.0 0.0.0.255RouterA(config-router)#network 192.168.1.0 0.0.0.25510.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 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing套用举例使用 % 通配符例子 1现在,我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE 'Ne%'结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子 2接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE '%lond%'结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon使用 _ 通配符例子 1现在,我们希望从上面的 "Persons" 表中选取名字的第一个字元之后是 "eorge" 的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE FirstName LIKE '_eorge'结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子 2接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字元,然后是 "r",然后是任意字元,然后是 "er":我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE LastName LIKE 'C_r_er'结果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijing使用 [charlist] 通配符例子 1现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE '[ALN]%'结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York例子 2现在,我们希望从上面的 "Persons" 表中选取居住的城市