`
freeskywcy
  • 浏览: 215227 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

通配符知识学习

 
阅读更多

通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。实际上用“*Not?paOd”可以对应Notpad\MyNotpad*可以代表任何文字】;Notpad\Notepad?仅代表单个文字】;Notepad\Notepodao代表ao里二选一】,其余以此类推。

一、基本概念

  通配符是一类键盘字符,有星号(*)和问号(?).

  当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者不想键入完整名字时,常常使用通配符代替一个或多个真正字符。

星号(*):

  可以使用星号代替0个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txtAEWU.EXEAEWI.dll等。要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txtAEWDF.txt

问号(?):

  可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如loveylovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.docloveh.doc

通配符包括星号“*”和问号

  星号表示匹配的数量不受限制,而后者的匹配字符数则受到限制。这个技巧主要用于英文搜索中,如输入““computer*”,就可以找到“computercomputerscomputerisedcomputerized”等单词,而输入“comp?ter”,则只能找到“computercompatercompeter”等单词。

二、使用模式

通配符优先级

  对于使用通配符模式的各种资源,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

任意字符串

*

  根据资源的种类,将通过从开始到结束(或者相反方向)逐个元素比较模式来确定优先级。匹配文件名称的模式是从开始比较到结束。匹配主机名称的模式是从结束比较到开始。

  除了认为相同的两种模式之外,将认为较长的模式比较短的模式更具体,除非较长的字符串是由于星号(*)而较长。

通配符优先级的示例

  下表 显示了按优先级从最高到最低排列的文件名和主机名通配符模式。

  . 通配符模式优先级示例

  

优先级

文件名称模式

主机名称模式

1

log/0[0-9]/error

www.[a-z]tv.com

2

log/0?/error

www.?tv.com

3

log/0*/error

www.*tv.com

4

log/[0-9]+/error.1

www-help.[a-z]+v.com

5

log/*/error.1

www-help.*v.com

6

log*/error.1

www-help.*.com

7

log*/error

www.*.com

8

log*/error*

*www.*.com

9

log*

*.com

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

 

分享到:
评论

相关推荐

    「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识

    泛型&通配符详解 Java 反射机制详解 Java 代理模式详解 BigDecimal 详解 Java 魔法类 Unsafe 详解 Java SPI 机制详解 Java 语法糖详解 集合 知识点/面试题总结: Java 集合常见知识点&面试题总结(上) (必看 ) Java ...

    「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识 准备 Java 面试,首选.zip

    泛型&通配符详解 Java 反射机制详解 Java 代理模式详解 BigDecimal 详解 Java 魔法类 Unsafe 详解 Java SPI 机制详解 Java 语法糖详解 集合 知识点/面试题总结 : Java 集合常见知识点&面试题总结(上) (必看 ) Java...

    Linux培训视频.zip

    16-Linux通配符和特殊字符知识 17-Linux正则表达式知识精讲 18-三剑客入门知识与配合正则实践 19-三剑客之awk实践及考试题讲 20-磁盘管理-内外部结构及逻辑知识 21-磁盘管理之raid及分区 22-磁盘管理之分区与格式化...

    C#使用[]通配符查询数据库

    摘要:C#源码,数据库应用,通配符 Visual C#利用[]通配符进行查询数据库,学习一下[]通配符在SQL查询中的用法,较基础的C#数据库入门知识,除此功能外,本示例程序没有其它的功能,比较单一,有想研究学习的就下载本...

    java学习笔记 初学者必读

    17.1.3. 泛型的通配符"?" 17-62 17.1.4. 泛型方法的定义 17-63 17.1.5. 泛型类的定义 17-63 17.1.6. 泛型与异常 17-64 17.1.7. 泛型的一些局限型 17-65 17.2. 增强的for循环 17-66 17.3. 自动装箱和自动拆箱 17-69 ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    8.5.5 通配符实现简化配置 8.5.6 返回结果的配置 8.6 Struts2的开发模式 8.6.1 实现与ServletAPI的交互 86.2 域模型DomainModel 86.3 驱动模型ModelDriven 8.7 实战检验 8.7.1 Struts2处理表单数据 8.7.2 使用M印...

    Shell脚本学习笔记

    3.4.3 改变字段分隔符与使用通配符读取目录 69 3.4.5 C式的for命令 70 3.5 while、until命令 71 3.5.1 使用多条测试命令 71 3.5.2 until命令与循环嵌套 72 3.6 文件数据的循环与控制循环 73 3.6.1 文件数据的循环 73...

    简单介绍MySQL中GROUP BY子句的使用

    主要介绍了简单介绍MySQL中GROUP BY子句的使用,是MySQL入门学习中的基础知识,需要的朋友可以参考下

    Java正则表达式入门学习

    一、正则表达式基础知识 1.1 句点符号 假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束。另外,假设有一本英文字典,你可以用正则表达式搜索它的全部内容。要...

    SQL必知必会(第3版)--详细书签版

    本书涉及不同平台上数据的排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容,通过本书读者可以系统地学习到sql 的知识和方法。  本书注重实用性,操作性很强,适合于sql 的初学者学习...

    算法文档,来看看吧

    [原网页] 程序员编程艺术第三十~三十一章:字符串转换成整数,通配符字符串匹配 [原网页] 程序员编程艺术第二十八~二十九章:最大连续乘积子串、字符串编辑距离 [原网页] 数据挖掘中所需的概率论与数理统计知识、...

    SQL必知必会(第3版-PDF清晰版)part1

    推荐:学习SQL编程,必备书籍,从入门到进阶/精通,实例与理论同步,比较优秀作品!(共分压5部分)目录: 第1章 了解SQL... 1 1.1 数据库基础..... 1 1.1.1 什么是数据库..... 2 1.1.2 表..... 2 1.1.3 列和...

    入门学习Linux常用必会60个命令实例详解doc/txt

    要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令...

    21天学习SQL V1.0

    21天学习SQL V1.0.pdf 66 SQL 21 日自学通(V1.0) 翻译人笨猪 EMAIL wyhsillypig@163.com 2 日期/时间函数.........................................................................................................

    BaiduPCS-Go:百度网盘工具箱-Go语言编写

    使用本程序,强烈建议学习一些Linux基础知识, 。 如果未带任何参数运行程序,则程序将进入唯一有的console模式,可直接运行相关命令。 console模式下,光标所在行的预定应为BaiduPCS-Go > 程序会提供相关命令的...

    Java 高级特性.doc

    象以后我门在学习JAVA 的时候,一定要对每个知识点要慢慢的消化吃透,切不能走马观花。一个知识点必须要反复的动手练习,不然很难理解其中的奥秘所在的! 5.在JAVA的程序中,我经常性的看到字符前面有@这种标志的...

    LINUX操作系统(电子教案,参考答案)

    3.2.4 通配符与多文件操作 37 3.3 链接 41 3.3.1 硬链接 41 3.3.2 符号链接 42 3.4 文件的属性 43 3.4.1 显示文件的属性 43 3.4.2 权限字与权限操作 46 3.5 设备文件 48 3.6 磁盘的操作 51 3.7 备份 60 小结 62 习题...

    Java开发技术大全(500个源代码).

    示例描述:本章介绍开发Java的基础语法知识。 accumulationByDoWhile.java 用do~while语句写的累加程序 accumulationByFor.java 用for语句写的累加程序 accumulationByWhile.java 用while语句写的累加程序 ...

    疯狂JAVA讲义

    学生提问:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种...

Global site tag (gtag.js) - Google Analytics