千家信息网

test、exec、match三者在正则表达式中的区别是什么

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇文章为大家展示了test、exec、match三者在正则表达式中的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。test、exec、match的
千家信息网最后更新 2025年01月23日test、exec、match三者在正则表达式中的区别是什么

本篇文章为大家展示了test、exec、match三者在正则表达式中的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

test、exec、match的简单区别

1、test

test 返回 Boolean,查找对应的字符串中是否存在模式。 var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(reg.test(str)); // true

2、exec

exec 查找并返回当前的匹配结果,并以数组的形式返回。 var str = "1a1b1c"; var reg = new RegExp("1.", ""); var arr = reg.exec(str); 如果不存在模式,则 arr 为 null,否则 arr 总是一个长度为 1 的数组,其值就是当前匹配项。arr 还有三个属性:index 当前匹配项的位置;lastIndex 当前匹配项结束的位置(index + 当前匹配项的长度);input 如上示例中 input 就是 str。

exec 方法受参数 g 的影响。若指定了 g,则下次调用 exec 时,会从上个匹配的 lastIndex 开始查找。 var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(reg.exec(str)[0]); alert(reg.exec(str)[0]); 上述两个输出都是 1a。现在再看看指定参数 g: var str = "1a1b1c"; var reg = new RegExp("1.", "g"); alert(reg.exec(str)[0]); alert(reg.exec(str)[0]); 上述第一个输出 1a,第二个输出 1b。

3、match

match 是 String 对象的一个方法。 var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(str.match(reg)); match 这个方法有点像 exec,但:exec 是 RegExp 对象的方法;math 是 String 对象的方法。二者还有一个不同点,就是对参数 g 的解释。 如果指定了参数 g,那么 match 一次返回所有的结果。 var str = "1a1b1c"; var reg = new RegExp("1.", "g"); alert(str.match(reg)); //alert(str.match(reg)); // 此句同上句的结果是一样的 此结果为一个数组,有三个元素,分别是:1a、1b、1c。

正则表达式对象有两个定义方式::

1、第一种定义(构造函数定义):

new RegExp(pattern, attributes);如var reg = new RegExp("abc","g")

其中pattern为表示表达式内容,如上表示匹配abc

attributes:g,全局匹配,i不区分大小写,m执行多行匹配,用最多的为g和i

2、第二种定义(//文本定义):/pattern/attributes.

如:var reg = /abc/g;

exec和match的详细区别:

1、exec是正则表达式的方法,而不是字符串的方法,它的参数才是字符串,如下所示:

如上定义

var reg = new RegExp("abc") ; var str = "3abc4,5abc6"; reg.exec(str );

2、match是字符串执行匹配正则表达式规则的方法,他的参数是正则表达,如

var reg = new RegExp("abc") ; var str = "3abc4,5abc6"; str.match(reg);

3、exec和match返回的都是数组(正则表达式无子表达式,并且定义为非全局匹配)

如果exec执行的正则表达式没有子表达式(小括号内的内容,如/abc(\s*)/中的(\s*) ),如果有匹配,就返回第一个匹配的字符串内容,此时的数组仅有一个元素,如果没有匹配返回null;

var reg = new RegExp("abc") ; var str = "3abc4,5abc6"; alert(reg.exec(str)); alert(str.match(reg));

执行如上代码,你会发现两者内容均为一样:abc,

4、如果定义正则表达对象为全局匹配如(正则表达式无子表达式,并且定义为全局匹配)

var reg = new RegExp("abc","g") ; var str = "3abc4,5abc6"; alert(reg.exec(str)); alert(str.match(reg));

则 为abc和abc,abc;因为match执行了全局匹配查询;而exec如果没有子表达式只会找到一个匹配的即返回。

5、当表示中含有子表达式的情况(正则表达式有子表达式,并且定义为非全局匹配):

var reg = new RegExp("a(bc)") ; var str = "3abc4,5abc6"; alert(reg.exec(str)); alert(str.match(reg));

你会发现两者执行的结果都是:abc,bc;

6、当如果正则表达式对象定义为全局匹配(正则表达式有子表达式,并且定义为全局匹配)

var reg = new RegExp("a(bc)","g") ; var str = "3abc4,5abc6"; alert(reg.exec(str)); alert(str.match(reg));

则两者返回的结果是abc,bc和abc,abc,

总结为:

1、当正则表达式无子表达式,并且定义为非全局匹配时,exec和match执行的结果是一样,均返回第一个匹配的字符串内容;

2、当正则表达式无子表达式,并且定义为全局匹配时,exec和match执行,做存在多处匹配内容,则match返回的是多个元素数组;

3、当正则表达式有子表示时,并且定义为非全局匹配,exec和match执行的结果是一样如上边的第5种情况;

4、当正则表达式有子表示时,并且定义为全局匹配,exec和match执行的结果不一样,此时match将忽略子表达式,只查找全匹配正则表达式并返回所有内容,如上第6种情况;

也就说,exec与全局是否定义无关系,而match则于全局相关联,当定义为非全局,两者执行结果相同

不管哪门语言中都有括号。正则表达式也是一门语言,而括号的存在使这门语言更为强大。

对括号的使用是否得心应手,是衡量对正则的掌握水平的一个侧面标准。

括号的作用,其实三言两语就能说明白,括号提供了分组,便于我们引用它。

引用某个分组,会有两种情形:在JavaScript里引用它,在正则表达式里引用它。

本文内容虽相对简单,但我也要写长点。

内容包括:

1. 分组和分支结构

2. 捕获分组

3. 反向引用

4. 非捕获分组

5.相关案例

1. 分组和分支结构

这二者是括号最直觉的作用,也是最原始的功能。

1.1 分组

我们知道/a+/匹配连续出现的"a",而要匹配连续出现的"ab"时,需要使用/(ab)+/。

其中括号是提供分组功能,使量词"+"作用于"ab"这个整体,测试如下:

var regex = /(ab)+/g;var string = "ababa abbb ababab";console.log( string.match(regex) ); // ["abab", "ab", "ababab"]

1.2 分支结构

而在多选分支结构(p1|p2)中,此处括号的作用也是不言而喻的,提供了子表达式的所有可能。

比如,要匹配如下的字符串:

I love JavaScriptI love Regular Expression

可以使用正则:

var regex = /^I love (JavaScript|Regular Expression)$/;console.log( regex.test("I love JavaScript") ); // trueconsole.log( regex.test("I love Regular Expression") ); // true

如果去掉正则中的括号,即/^I love JavaScript|Regular Expression$/,匹配字符串是"I love JavaScript"和"Regular Expression",当然这不是我们想要的。

2. 引用分组

这是括号一个重要的作用,有了它,我们就可以进行数据提取,以及更强大的替换操作。

而要使用它带来的好处,必须配合使用实现环境的API。

以日期为例。假设格式是yyyy-mm-dd的,我们可以先写一个简单的正则:

var regex = /\d{4}-\d{2}-\d{2}/;

然后再修改成括号版的:

var regex = /(\d{4})-(\d{2})-(\d{2})/;

为什么要使用这个正则呢?

2.1 提取数据

比如提取出年、月、日,可以这么做:

var regex = /(\d{4})-(\d{2})-(\d{2})/;var string = "2017-06-12";console.log( string.match(regex) ); // => ["2017-06-12", "2017", "06", "12", index: 0, input: "2017-06-12"]

match返回的一个数组,第一个元素是整体匹配结果,然后是各个分组(括号里)匹配的内容,然后是匹配下标,最后是输入的文本。(注意:如果正则是否有修饰符g,match返回的数组格式是不一样的)。

另外也可以使用正则对象的exec方法:

var regex = /(\d{4})-(\d{2})-(\d{2})/;var string = "2017-06-12";console.log( regex.exec(string) ); // => ["2017-06-12", "2017", "06", "12", index: 0, input: "2017-06-12"]

同时,也可以使用构造函数的全局属性$1至$9来获取:

var regex = /(\d{4})-(\d{2})-(\d{2})/;var string = "2017-06-12";regex.test(string); // 正则操作即可,例如//regex.exec(string);//string.match(regex);console.log(RegExp.$1); // "2017"console.log(RegExp.$2); // "06"console.log(RegExp.$3); // "12"

2.2 替换

比如,想把yyyy-mm-dd格式,替换成mm/dd/yyyy怎么做?

var regex = /(\d{4})-(\d{2})-(\d{2})/;var string = "2017-06-12";var result = string.replace(regex, "$2/$3/$1");console.log(result); // "06/12/2017"

其中replace中的,第二个参数里用$1、$2、$3指代相应的分组。等价于如下的形式:

var regex = /(\d{4})-(\d{2})-(\d{2})/;var string = "2017-06-12";var result = string.replace(regex, function() { return RegExp.$2 + "/" + RegExp.$3 + "/" + RegExp.$1;});console.log(result); // "06/12/2017"

也等价于:

var regex = /(\d{4})-(\d{2})-(\d{2})/;var string = "2017-06-12";var result = string.replace(regex, function(match, year, month, day) { return month + "/" + day + "/" + year;});console.log(result); // "06/12/2017"

3. 反向引用

除了使用相应API来引用分组,也可以在正则本身里引用分组。但只能引用之前出现的分组,即反向引用。

还是以日期为例。

比如要写一个正则支持匹配如下三种格式:

2016-06-12
2016/06/12
2016.06.12

最先可能想到的正则是:

var regex = /\d{4}(-|\/|\.)\d{2}(-|\/|\.)\d{2}/;var string1 = "2017-06-12";var string2 = "2017/06/12";var string3 = "2017.06.12";var string4 = "2016-06/12";console.log( regex.test(string1) ); // trueconsole.log( regex.test(string2) ); // trueconsole.log( regex.test(string3) ); // trueconsole.log( regex.test(string4) ); // true

其中/和.需要转义。虽然匹配了要求的情况,但也匹配"2016-06/12"这样的数据。

假设我们想要求分割符前后一致怎么办?此时需要使用反向引用:

var regex = /\d{4}(-|\/|\.)\d{2}\1\d{2}/;var string1 = "2017-06-12";var string2 = "2017/06/12";var string3 = "2017.06.12";var string4 = "2016-06/12";console.log( regex.test(string1) ); // trueconsole.log( regex.test(string2) ); // trueconsole.log( regex.test(string3) ); // trueconsole.log( regex.test(string4) ); // false

注意里面的\1,表示的引用之前的那个分组(-|\/|\.)。不管它匹配到什么(比如-),\1都匹配那个同样的具体某个字符。

我们知道了\1的含义后,那么\2和\3的概念也就理解了,即分别指代第二个和第三个分组。

看到这里,此时,恐怕你会有三个问题。

3.1 括号嵌套怎么办?

以左括号(开括号)为准。比如:

var regex = /^((\d)(\d(\d)))\1\2\3\4$/;var string = "1231231233";console.log( regex.test(string) ); // trueconsole.log( RegExp.$1 ); // 123console.log( RegExp.$2 ); // 1console.log( RegExp.$3 ); // 23console.log( RegExp.$4 ); // 3

我们可以看看这个正则匹配模式:

第一个字符是数字,比如说1,

第二个字符是数字,比如说2,

第三个字符是数字,比如说3,

接下来的是\1,是第一个分组内容,那么看第一个开括号对应的分组是什么,是123,

接下来的是\2,找到第2个开括号,对应的分组,匹配的内容是1,

接下来的是\3,找到第3个开括号,对应的分组,匹配的内容是23,

最后的是\4,找到第3个开括号,对应的分组,匹配的内容是3。

这个问题,估计仔细看一下,就该明白了。

3.2 \10表示什么呢?

另外一个疑问可能是,即\10是表示第10个分组,还是\1和0呢?答案是前者,虽然一个正则里出现\10比较罕见。测试如下:

var regex = /(1)(2)(3)(4)(5)(6)(7)(8)(9)(#) \10+/;var string = "123456789# ######"console.log( regex.test(string) );

3.3 引用不存在的分组会怎样?

因为反向引用,是引用前面的分组,但我们在正则里引用了不存在的分组时,此时正则不会报错,只是匹配反向引用的字符本身。例如\2,就匹配"\2"。注意"\2"表示对2进行了转意。

var regex = /\1\2\3\4\5\6\7\8\9/;console.log( regex.test("\1\2\3\4\5\6\7\8\9") ); console.log( "\1\2\3\4\5\6\7\8\9".split("") );

chrome浏览器打印的结果:

4. 非捕获分组

之前文中出现的分组,都会捕获它们匹配到的数据,以便后续引用,因此也称他们是捕获型分组。

如果只想要括号最原始的功能,但不会引用它,即,既不在API里引用,也不在正则里反向引用。此时可以使用非捕获分组(?:p),例如本文第一个例子可以修改为:

var regex = /(?:ab)+/g;var string = "ababa abbb ababab";console.log( string.match(regex) ); // ["abab", "ab", "ababab"]

5. 相关案例

至此括号的作用已经讲完了,总结一句话,就是提供了可供我们使用的分组,如何用就看我们的了。

5.1 字符串trim方法模拟

trim方法是去掉字符串的开头和结尾的空白符。有两种思路去做。

第一种,匹配到开头和结尾的空白符,然后替换成空字符。如:

function trim(str) { return str.replace(/^\s+|\s+$/g, '');}console.log( trim(" foobar ") ); // "foobar"

第二种,匹配整个字符串,然后用引用来提取出相应的数据:

function trim(str) { return str.replace(/^\s*(.*?)\s*$/g, "$1");}console.log( trim(" foobar ") ); // "foobar"

这里使用了惰性匹配*?,不然也会匹配最后一个空格之前的所有空格的。

当然,前者效率高。

5.2 将每个单词的首字母转换为大写

function titleize(str) { return str.toLowerCase().replace(/(?:^|\s)\w/g, function(c) { return c.toUpperCase(); });}console.log( titleize('my name is epeli') ); // "My Name Is Epeli"

思路是找到每个单词的首字母,当然这里不使用非捕获匹配也是可以的。

5.3 驼峰化

function camelize(str) { return str.replace(/[-_\s]+(.)?/g, function(match, c) { return c ? c.toUpperCase() : ''; });}console.log( camelize('-moz-transform') ); // MozTransform

首字母不会转化为大写的。其中分组(.)表示首字母,单词的界定,前面的字符可以是多个连字符、下划线以及空白符。正则后面的?的目的,是为了应对str尾部的字符可能不是单词字符,比如str是'-moz-transform '。

5.4 中划线化

function dasherize(str) { return str.replace(/([A-Z])/g, '-$1').replace(/[-_\s]+/g, '-').toLowerCase();}console.log( dasherize('MozTransform') ); // -moz-transform

驼峰化的逆过程。

5.5 html转义和反转义

// 将HTML特殊字符转换成等值的实体function escapeHTML(str) { var escapeChars = { '¢' : 'cent', '£' : 'pound', '¥' : 'yen', '?': 'euro', '©' :'copy', '®' : 'reg', '<' : 'lt', '>' : 'gt', '"' : 'quot', '&' : 'amp', '\'' : '#39' }; return str.replace(new RegExp('[' + Object.keys(escapeChars).join('') +']', 'g'), function(match) { return '&' + escapeChars[match] + ';'; });}console.log( escapeHTML('
Blah blah blah
') );// => <div>Blah blah blah</div>

其中使用了用构造函数生成的正则,然后替换相应的格式就行了,这个跟本文没多大关系。

倒是它的逆过程,使用了括号,以便提供引用,也很简单,如下:

// 实体字符转换为等值的HTML。function unescapeHTML(str) { var htmlEntities = { nbsp: ' ', cent: '¢', pound: '£', yen: '¥', euro: '?', copy: '©', reg: '®', lt: '<', gt: '>', quot: '"', amp: '&', apos: '\'' }; return str.replace(/\&([^;]+);/g, function(match, key) { if (key in htmlEntities) { return htmlEntities[key]; } return match; });}console.log( unescapeHTML('<div>Blah blah blah</div>') );// => 
Blah blah blah

通过key获取相应的分组引用,然后作为对象的键。

5.6 匹配成对标签

要求匹配:

regular expression

laoyao bye bye

不匹配:

wrong!</p></pre><p>匹配一个开标签,可以使用正则<[^>]+>,</p><p>匹配一个闭标签,可以使用<\/[^>]+>,</p><p>但是要求匹配成对标签,那就需要使用反向引用,如:</p><pre class="brush:js;">var regex = /<([^>]+)>[\d\D]*<\/\1>/;var string1 = "<title>regular expression";var string2 = "

laoyao bye bye

";var string3 = "wrong!</p>";console.log( regex.test(string1) ); // trueconsole.log( regex.test(string2) ); // trueconsole.log( regex.test(string3) ); // false</pre><p>其中开标签<[^>]+>改成<([^>]+)>,使用括号的目的是为了后面使用反向引用,而提供分组。闭标签使用了反向引用,<\/\1>。</p><p>另外[\d\D]的意思是,这个字符是数字或者不是数字,因此,也就是匹配任意字符的意思。</p><p class="introduction">上述内容就是test、exec、match三者在正则表达式中的区别是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。</p> </div> <div class="diggit"><a href="#"> 很赞哦! </a></div> <div class="clear"></div> <div class="keywords"> <a href="/s-正则">正则</a> <a href="/s-分组">分组</a> <a href="/s-表达式">表达式</a> <a href="/s-字符">字符</a> <a href="/s-括号">括号</a> <a href="/s-全局">全局</a> <a href="/s-内容">内容</a> <a href="/s-结果">结果</a> <a href="/s-字符串">字符串</a> <a href="/s-方法">方法</a> <a href="/s-对象">对象</a> <a href="/s-数组">数组</a> <a href="/s-参数">参数</a> <a href="/s-作用">作用</a> <a href="/s-三个">三个</a> <a href="/s-如上">如上</a> <a href="/s-就是">就是</a> <a href="/s-数字">数字</a> <a href="/s-数据">数据</a> <a href="/s-格式">格式</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377745.html">数据库的安全要保护哪些东西</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2375887.html">数据库安全各自的含义是什么</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377880.html">生产安全数据库录入</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377879.html">数据库的安全性及管理</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377878.html">数据库安全策略包含哪些</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377877.html">海淀数据库安全审计系统</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377876.html">建立农村房屋安全信息数据库</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377875.html">易用的数据库客户端支持安全管理</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377874.html">连接数据库失败ssl安全错误</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377873.html">数据库的锁怎样保障安全</a> <a target="_blank" href="https://www.qianjiagd.com/tag-854360.html">文本数据库更新记录</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2046521.html">天津民主评议软件开发系统</a> <a target="_blank" href="https://www.qianjiagd.com/tag-749879.html">数控编程常用数据库</a> <a target="_blank" href="https://www.qianjiagd.com/tag-1207603.html">网络技术是工程类</a> <a target="_blank" href="https://www.qianjiagd.com/tag-643931.html">迅雷极品数据库</a> <a target="_blank" href="https://www.qianjiagd.com/tag-20819.html">富国互联网科技股票今日净值</a> <a target="_blank" href="https://www.qianjiagd.com/tag-1395034.html">中国十大网络安全大学</a> <a target="_blank" href="https://www.qianjiagd.com/tag-260638.html">服务器上行重要么</a> <a target="_blank" href="https://www.qianjiagd.com/tag-459681.html">虚拟货币交易所服务器在国外</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2014784.html">软件开发外包介意年龄吗</a> <a target="_blank" href="https://www.qianjiagd.com/tag-393504.html">游戏服务器分哪些</a> <a target="_blank" href="https://www.qianjiagd.com/tag-799035.html">数据库到学校采血是干嘛</a> <a target="_blank" href="https://www.qianjiagd.com/tag-1415.html">环球优购互联网科技有限公司</a> <a target="_blank" href="https://www.qianjiagd.com/tag-1553090.html">组织网络安全考试经验</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2008430.html">东阳电脑软件开发</a> <a target="_blank" href="https://www.qianjiagd.com/tag-269725.html">如何用服务器搭建超级计算机</a> <a target="_blank" href="https://www.qianjiagd.com/tag-1171773.html">广州学困网络技术有限公司</a> <a target="_blank" href="https://www.qianjiagd.com/tag-252465.html">百度服务器或代理查找失败</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2269384.html">调滤镜软件开发</a> <a target="_blank" href="https://www.qianjiagd.com/tag-1160401.html">巢湖品牌网络技术咨询怎么样</a> <a target="_blank" href="https://www.qianjiagd.com/s-手机版方舟怎么登录服务器">手机版方舟怎么登录服务器</a> <a target="_blank" href="https://www.qianjiagd.com/s-数据库对象视图的优缺点">数据库对象视图的优缺点</a> <a target="_blank" href="https://www.qianjiagd.com/s-高清瓷砖软件开发">高清瓷砖软件开发</a> <a target="_blank" href="https://www.qianjiagd.com/s-数据库学生考试报名系统">数据库学生考试报名系统</a> <a target="_blank" href="https://www.qianjiagd.com/s-基础应用类的服务器ad 杀毒">基础应用类的服务器ad 杀毒</a> <a target="_blank" href="https://www.qianjiagd.com/s-网络安全隐患分为哪些">网络安全隐患分为哪些</a> <a target="_blank" href="https://www.qianjiagd.com/s-数据库安全性不包括哪些">数据库安全性不包括哪些</a> <a target="_blank" href="https://www.qianjiagd.com/s-警察网络安全管理工资">警察网络安全管理工资</a> <a target="_blank" href="https://www.qianjiagd.com/s-哪个平台的云服务器靠谱">哪个平台的云服务器靠谱</a> <a target="_blank" href="https://www.qianjiagd.com/s-K3部分无法建立数据库">K3部分无法建立数据库</a> </div> <div class="share"><img src="https://www.qianjiagd.com/static/zsymb/images/wxgzh.jpg"> <div class="share-text"> <p>扫描关注千家信息网微信公众号,第一时间获取内容更新动态</p> <p>转载请说明来源于"千家信息网"</p> <p>本文地址:<a href="https://www.qianjiagd.com/a45562" target="_blank">https://www.qianjiagd.com/a45562</a></p> </div> </div> <div class="clear"></div> <div class="info-pre-next"> <ul> <li><a href="https://www.qianjiagd.com/a45560"><i><em>上一篇</em><img src="https://www.qianjiagd.com/static/assets/images/nopic.gif"></i> <h2>Redis中HyperLogLog的作用是什么</h2> <p>Redis中HyperLogLog的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。HyperLogLog是Redis的高级</p> </a></li> <li><a href="https://www.qianjiagd.com/a45563"><i><em>下一篇</em><img src="https://www.qianjiagd.com/static/assets/images/nopic.gif"></i> <h2>Python趣味挑战题目有哪些</h2> <p>本篇内容主要讲解"Python趣味挑战题目有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python趣味挑战题目有哪些"吧!第一题这道题只能算是一道</p> </a></li> </ul> </div> </div> </div> <div class="clear blank"></div> <div class="otherlink whitebg"> <div class="news-title"> <h2>相关文章</h2> </div> <ul> <li><a href="https://www.qianjiagd.com/a178897" title="搭建zoopker+hbase 环境">搭建zoopker+hbase 环境</a></li> <li><a href="https://www.qianjiagd.com/a10647" title="版本控制系统(git + gitolite)">版本控制系统(git + gitolite)</a></li> <li><a href="https://www.qianjiagd.com/a213791" title="【新梦想老师分享】分布式锁的正确"姿势"">【新梦想老师分享】分布式锁的正确"姿势"</a></li> <li><a href="https://www.qianjiagd.com/a231685" title="如何搭建母婴社区">如何搭建母婴社区</a></li> <li><a href="https://www.qianjiagd.com/a69031" title="spring通过profile实现开发和测试环境切换">spring通过profile实现开发和测试环境切换</a></li> <li><a href="https://www.qianjiagd.com/a158720" title="最新2.7版本丨DataPipeline数据融合产品最新版本">最新2.7版本丨DataPipeline数据融合产品最新版本</a></li> <li><a href="https://www.qianjiagd.com/a46349" title="串口调试助手,VB6.0开发">串口调试助手,VB6.0开发</a></li> <li><a href="https://www.qianjiagd.com/a143123" title="七、flink--异步IO">七、flink--异步IO</a></li> <li><a href="https://www.qianjiagd.com/a124764" title="团队转型之痛之悟">团队转型之痛之悟</a></li> <li><a href="https://www.qianjiagd.com/a87674" title="Oracle 和 MySQL 的 JDBC 到底有多慢?">Oracle 和 MySQL 的 JDBC 到底有多慢?</a></li> <!-- <li><a target="_blank" href="/">制作是这么收费的?</a></li> --> </ul> </div> </div> <!-- . end of left-box --> <!-- right aside start--> <aside class="side-section right-box"> <div class="side-tab"> <ul id="sidetab"> <li class="sidetab-current">站长推荐</li> <li>点击排行</li> </ul> <div id="sidetab-content"> <section> <div class="tuijian"> <section class="topnews imgscale"><a href="https://www.qianjiagd.com/a622964" title="recovery是什么意思?电脑开机重启显示recovery蓝屏怎么办"><img src="https://www.qianjiagd.com/uploadfile/thumb/a87ff679a2f3e71d9181a67b7542122c/278x185_auto.jpg" alt="recovery是什么意思?电脑开机重启显示recovery蓝屏怎么办"><span>recovery是什么意思?电脑开机重启显示recovery蓝屏怎么办</span></a></section> <ul> <li><a href="https://www.qianjiagd.com/a67182" title="怎么在Linux中配置SSH和Xshell远程连接服务器"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/9a/65e9dcdf.jpg" alt="怎么在Linux中配置SSH和Xshell远程连接服务器"></i> <p>怎么在Linux中配置SSH和Xshell远程连接服务器</p> </a></li> <li><a href="https://www.qianjiagd.com/a123341" title="VS2008无法直接查看STL值怎么办"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/52/bf79ba42.jpg" alt="VS2008无法直接查看STL值怎么办"></i> <p>VS2008无法直接查看STL值怎么办</p> </a></li> <li><a href="https://www.qianjiagd.com/a106909" title="什么是RPC框架"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/10/d0f5142a.jpg" alt="什么是RPC框架"></i> <p>什么是RPC框架</p> </a></li> <li><a href="https://www.qianjiagd.com/a157266" title=".net mvc超过了最大请求长度怎么办"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/36/6d16d7e5.jpg" alt=".net mvc超过了最大请求长度怎么办"></i> <p>.net mvc超过了最大请求长度怎么办</p> </a></li> </ul> <section class="topnews imgscale"><a href="https://www.qianjiagd.com/a244736" title="java怎么实现try/catch异常块"><img src="https://www.qianjiagd.com/uploadfile/thumb/15/9878a9c6.jpg" alt="java怎么实现try/catch异常块"><span>java怎么实现try/catch异常块</span></a></section> <ul> <li><a href="https://www.qianjiagd.com/a199222" title="PHP中如何处理上传文件"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/ee/203d504b.jpg" alt="PHP中如何处理上传文件"></i> <p>PHP中如何处理上传文件</p> </a></li> <li><a href="https://www.qianjiagd.com/a184615" title="php中require_once报错的解决方法"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/ef/e0177085.jpg" alt="php中require_once报错的解决方法"></i> <p>php中require_once报错的解决方法</p> </a></li> <li><a href="https://www.qianjiagd.com/a192541" title="PHP如何编写学校网站上新生注册登陆程序"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/a1/0898126a.jpg" alt="PHP如何编写学校网站上新生注册登陆程序"></i> <p>PHP如何编写学校网站上新生注册登陆程序</p> </a></li> <li><a href="https://www.qianjiagd.com/a210747" title="php中微信公众号开发模式的示例分析"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/af/9e9aba9a.jpg" alt="php中微信公众号开发模式的示例分析"></i> <p>php中微信公众号开发模式的示例分析</p> </a></li> </ul> </div> </section> <section> <div class="paihang"> <section class="topnews imgscale"><a href="https://www.qianjiagd.com/a21343" title="在vmware esxi6.5中将硬盘驱动类型由HDD变为SSD类型"><img src="https://www.qianjiagd.com/uploadfile/thumb/ab/08b16e75.jpg" alt="在vmware esxi6.5中将硬盘驱动类型由HDD变为SSD类型"><span>在vmware esxi6.5中将硬盘驱动类型由HDD变为SSD类型</span></a></section> <ul> <li><i></i><a href="https://www.qianjiagd.com/a175843" title="Vue中的匿名插槽与具名插槽是什么">Vue中的匿名插槽与具名插槽是什么</a></li> <li><i></i><a href="https://www.qianjiagd.com/a114973" title="vue3与vue2的区别以及vue3的API用法介绍">vue3与vue2的区别以及vue3的API用法介绍</a></li> <li><i></i><a href="https://www.qianjiagd.com/a27254" title="录制的横屏视频怎么变成全屏竖屏(录制的横屏怎么变竖屏)">录制的横屏视频怎么变成全屏竖屏(录制的横屏怎么变竖屏)</a></li> <li><i></i><a href="https://www.qianjiagd.com/a69563" title="qq群作业里为什么图片上传不了(qq群作业照片传不上去)">qq群作业里为什么图片上传不了(qq群作业照片传不上去)</a></li> <li><i></i><a href="https://www.qianjiagd.com/a71754" title="vscoder如何关闭错误提示">vscoder如何关闭错误提示</a></li> <li><i></i><a href="https://www.qianjiagd.com/a36693" title="百度网盘PDF怎么转换成Word格式 PDF转Word操作教程">百度网盘PDF怎么转换成Word格式 PDF转Word操作教程</a></li> <li><i></i><a href="https://www.qianjiagd.com/a15469" title="老年机号码拉黑怎么解除(老年机号码拉黑怎么解除)">老年机号码拉黑怎么解除(老年机号码拉黑怎么解除)</a></li> <li><i></i><a href="https://www.qianjiagd.com/a85246" title="京东以旧换新评估价和实际一样吗(京东以旧换新估价和成交价一样吗)">京东以旧换新评估价和实际一样吗(京东以旧换新估价和成交价一样吗)</a></li> </ul> <section class="topnews imgscale"><a href="https://www.qianjiagd.com/a13935" title="拼多多注销后可以重开新用户吗(拼多多注销后重开算新用户吗)"><img src="https://www.qianjiagd.com/uploadfile/thumb/0a/8e8c068e.jpg" alt="拼多多注销后可以重开新用户吗(拼多多注销后重开算新用户吗)"><span>拼多多注销后可以重开新用户吗(拼多多注销后重开算新用户吗)</span></a></section> </div> </section> </div> </div> <div class="whitebg cloud"> <h2 class="side-title">标签云</h2> <ul> <a target="_blank" href="https://www.qianjiagd.com/tag-2377745.html">数据库的安全要保护哪些东西</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2375887.html">数据库安全各自的含义是什么</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377880.html">生产安全数据库录入</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377879.html">数据库的安全性及管理</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377878.html">数据库安全策略包含哪些</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377877.html">海淀数据库安全审计系统</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377876.html">建立农村房屋安全信息数据库</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377875.html">易用的数据库客户端支持安全管理</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377874.html">连接数据库失败ssl安全错误</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377873.html">数据库的锁怎样保障安全</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377872.html">数据库安全章节测试</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377871.html">华大基因数据库安全性</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377870.html">数据库es安全性测试工具</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377869.html">数据库与云安全</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377868.html">微生物安全数据库</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377867.html">数据库个人信息安全吗</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377866.html">安全数据库降级</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377865.html">黑龙江数据库安全防护系统</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377864.html">数据库安全性实验例题</a> <a target="_blank" href="https://www.qianjiagd.com/tag-2377863.html">在国家公共安全数据库有记录</a> </ul> </div> <div class="clear blank"></div> <div class="whitebg suiji"> <h2 class="side-title">猜你喜欢</h2> <ul> <li><a href="https://www.qianjiagd.com/a29879" title="微信登录加载联系人失败怎么弄(微信加载联系人失败 点击重试)">微信登录加载联系人失败怎么弄(微信加载联系人失败 点击重试)</a></li> <li><a href="https://www.qianjiagd.com/a63090" title="华为手机按键震动在哪设置关掉 按键振动怎么取消方法">华为手机按键震动在哪设置关掉 按键振动怎么取消方法</a></li> <li><a href="https://www.qianjiagd.com/a73496" title="陌陌无限注册教程(怎么注册陌陌新号)">陌陌无限注册教程(怎么注册陌陌新号)</a></li> <li><a href="https://www.qianjiagd.com/a206293" title="win10开机蓝屏终止代码SYSTEM_SERVICE_EXCEPTION的解决方法">win10开机蓝屏终止代码SYSTEM_SERVICE_EXCEPTION的解决方法</a></li> <li><a href="https://www.qianjiagd.com/a71928" title="微信看不到朋友圈不显示一条横线(微信看不到朋友圈只有一条横线)">微信看不到朋友圈不显示一条横线(微信看不到朋友圈只有一条横线)</a></li> <li><a href="https://www.qianjiagd.com/a123341" title="VS2008无法直接查看STL值怎么办">VS2008无法直接查看STL值怎么办</a></li> <li><a href="https://www.qianjiagd.com/a173126" title="快影怎么把视频弄成横屏播放 制作方法分享">快影怎么把视频弄成横屏播放 制作方法分享</a></li> <li><a href="https://www.qianjiagd.com/a22324" title="拼多多的多多支付怎么解绑银行卡(拼多多的多多支付怎么解绑银行卡)">拼多多的多多支付怎么解绑银行卡(拼多多的多多支付怎么解绑银行卡)</a></li> <li><a href="https://www.qianjiagd.com/a99782" title="怎么将苹果手机中录音发给好友 iPhone传语音文件方法教程">怎么将苹果手机中录音发给好友 iPhone传语音文件方法教程</a></li> <li><a href="https://www.qianjiagd.com/a213464" title="iis7.5中如何让html与shtml一样支持include功能">iis7.5中如何让html与shtml一样支持include功能</a></li> </ul> </div> </aside> <!-- right aside end--> </article> <div class="clear blank"></div> <!--footer start--> <footer> <div class="footer box"> <div class="wxbox"> <ul> <li><img src="https://www.qianjiagd.com/static/zsymb/images/wxgzh.jpg"><span>微信公众号</span></li> <li><img src="https://www.qianjiagd.com/static/zsymb/images/wx.png"><span>我的微信</span></li> </ul> </div> <div class="endnav"> <p><b>站点声明:</b></p> <p>所有文章未经授权禁止转载、摘编、复制或建立镜像,如有违反,追究法律责任。</p> <p>Copyright © 2009-2025 <a href="https://www.qianjiagd.com/" target="_blank">千家信息网</a> All Rights Reserved. <a href="/sitemap.xml">网站地图</a> <a href="/about/">关于我们</a> <a href="/contact-us/">联系我们</a> </p> </div> </div> </footer> <a href="#" title="返回顶部" class="icon-top"></a> <!--footer end--> <div style="display:none"> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?aec778eae8071ef8921721735a4a9509"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </div> <div style="display:none"> <span class="dr_show_hits_45562">0</span><script type="text/javascript"> $.ajax({ type: "GET", url:"/index.php?s=api&c=module&siteid=1&app=article&m=hits&id=45562", dataType: "jsonp", success: function(data){ if (data.code) { $(".dr_show_hits_45562").html(data.msg); } else { dr_tips(0, data.msg); } } }); </script></div> <!--本页面URL https://www.qianjiagd.com/a45562 --> <!--本页面于2025-01-23 11:26:34更新--> </body> </html>