sql 通配符符的‘???’和‘????’的区别是什么?

【转】正则表达式和通配符的区别 - 温柔的机械猫 - 博客园
随笔 - 116, 文章 - 0, 评论 - 1, 引用 - 0
Explain 1:
1、正则表达式是用来匹配字符串的,这个就不解释了
2、通配符是用来通配的,也就是shell在做Pathname Expansion时用到的
Explain 2:
通配符,说白了一般只用于文件名匹配, 它是由shell解析的。所谓的系统level的概念非常含糊,什么是系统level的?我们知道shell是一个命令解释器,它是内核的外壳,用于完成 操作系统使用者与内核的沟通,因此,通配符实际上就是一个shell解释器去解析的符号,它的特殊涵义是由shell这个命令解释器赋予的。通配符的英文 名是wildcard,就是万用牌的意思,它相当简单,一般来说,*nix系统上面的shell大多将三个特殊符号当作通配符,它们是 * ? [...], 其中 * 表示匹配任意长度的任意字符; ? 表示匹配一个任意字符, 而[...]则表示匹配括号中列出的字符中的任意一个。
& & 其次。什么是正则表达式(regular expression, 缩写是regex.)?从简单的角度去理解,你可以把正则表达式看成是一种字符串匹配模式标准。这里最重要的就是,它本身,只是一种业界流行的标准,或者说,它是相当于对字符串匹配模式的一种规定。这种规定是随着相关的工具软件的发展而自称体系的“不成文规矩”。
& & -- 举个例子好了。假设首先有一种工具软件能够根据“模式(pattern)”搜索字符串,这个工具非常流行,以至于后续的工具软件都效仿那个工具软件定义的模式规则来匹配字符串 -- 慢慢的就形成标准,而且相对来说是一种不成文的规矩.
& & 所以,正则表达式是什么? -- 它是一种对字符串匹配模式的描述和规定 -- 并且是一种标准。而不同的工具程序,也就是egrep、sed、awk这样的程序,以各种程度来支持这种字符串搜索模式,它们就是标准的实现,你可以在这种软件中使用正则表达式这种“匹配模式标准”。 -- 明白?
& & 所以,在什么地方使用通配符?答案是只要是shell命令行或者shell脚本中,你都可以使用通配符;
& & 在什么地方使用正则表达式?当你使用能够支持正则表达式的工具软件进行字符串处理时你就可以使用正则表达式。你还可以在支持正则表达式的语言中使用正则表达式,比如perl, java... C++中也有专门用于支持正则表达式的库。正则表达式总是和“使用什么工具软件或者语言”相关。相对来说,不同的工具和语言对正则表达式的支持程度不同,*nix里面将这些工具软件的对正则表达式的支持分类,因此也就有了“基础正则表达式”和“扩展正则表达式”。
& & 不同的工具对正则表达式的支持,其实有些许的微妙不同;但是总体来说,使用正则还是基本按照标准来的。这些不同的工具支持程度,被称之为“正则流派”。而 工具软件中支持这种匹配模式的那部分代码,称之为“正则引擎”。由于perl对正则表达式的支持非常到位,其正则引擎也比较优秀,因此perl语言算是正 则的一大流派,目前大部分对正则的支持都或多或少参考了perl语言中的标准。通配符“?”和“*”起什么作用_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
通配符“?”和“*”起什么作用
通配符“?”和“*”起什么作用
通配符是一类键盘字符,有星号(*)和问号(?).当查找文件呀文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者不想建入完整名字时,常常使用通配符代替一个或多个真正字符。星号(*):可以使用星号代替0个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。问号(?):可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey.txt、lovei.doc等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。
采纳率:39%
可以代替任何一个字符
为您推荐:
其他类似问题
通配符的相关知识
等待您来回答通配符和正则表达式的区别_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
通配符和正则表达式的区别
我有更好的答案
本上解释就是通配符是系统命令使用,一般用来匹配文件名或者什么的用在系统命令中。而正则表达式是操作字符串,而正则表达式不行,他只匹配任意长度的前面的字符,以行尾单位来匹配字符串使用的。
还有一点需要注意的是:*在通配符和正则表达式中有其不一样的地方,在通配符中*可以匹配任意的0个或多个字符,而在正则表达式中他是重复之前的一个或者多个字符,不能独立使用的。比如通配符可以用*来匹配任意字符
为您推荐:
其他类似问题
正则表达式的相关知识
等待您来回答linux中文件通配符的一个星号*和两个星号**有没有区别? 比如ls /tmp/*和ls /tm_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
linux中文件通配符的一个星号*和两个星号**有没有区别? 比如ls /tmp/*和ls /tm
linux中文件通配符的一个星号*和两个星号**有没有区别?比如ls /tmp/*和ls /tmp/**
我有更好的答案
包括0,所以没区别如果是?就有区别没区别,所以只用一个*号即可,*代表任意个数的通配符
那么为什么有些教程经常用**
什么教程?使用两个星号的教程或官方文档我还没见过。
论坛里见过几次,所以有些怀疑…
采纳率:70%
来自团队:
一个星号不包含斜杠(即路径符号),两个星号包含斜杠例:A 文件夹下有
c 文件夹, c 文件夹下有 d 文件一个星号只表示 b 和 c 两个星号 表示 b 和 c 和 d
1条折叠回答
为您推荐:
其他类似问题
tmp的相关知识
等待您来回答}

我要回帖

更多关于 sql 通配符 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信