正则里“g”表示全局(global)的意思,比如当替换字符串时,如果正则不加g,则只替换一次。
str = 'hello, jack, hello, lily'; reg = /hello/; res = str.replace(reg, 'hi'); console.log(res); // 'hi, jack, hello, lily'
第二个hello未被替换,正则reg换成“/hello/g”后则全部替换。
“g”还有一个作用是它会记录上次匹配时的位置(lastIndex)。这道题如下
var reg = /abc/g; var str = 'abcd'; reg.test(str); reg.test(str);
两次test的结果分别是什么? 相信不少人会迷惑。
这种情况Perl里也会发生
use 5.012; my $str = 'abcd'; if ($str =~ /abc/g) { say 'true'; } else { say 'false'; } if ($str =~ /abc/g) { say 'true'; } else { say 'false'; }
对于不同的正则对象,JS中会从字符串重新开始,因此以下两次输出都是true。
reg1 = /ab/g; reg2 = /cd/g; str = 'abcd'; console.log(reg2.test(str)); console.log(reg1.test(str));
但Perl中第二次却是false,因为它记住了上次匹配的位置。从字符d后再去匹配ab就匹配不上了。
use 5.012; my $str = 'abcd'; if ($str =~ /cd/g) { say 'true'; } else { say 'false'; } if ($str =~ /ab/g) { say 'true'; } else { say 'false'; }
相关推荐
根据工作学习,以及各大公司C/c++笔试题收集,包括基础性的,深层次的c/c++的题目,应用开发,嵌入式开发中运用的c/c++语言都有大量涉及;是你在面试求职过程的好帮手。
C/C++笔试题 比较完整的,里面不是所有都有答案,而且还有极少错误,先在此声明,还望见谅!
北京-赛门铁克perl/c笔试题 北京-赛门铁克perl/c笔试题. 北京-赛门铁克perl/c笔试题
C/C++笔试题合集 oracle数据库培训资料 android反编译工具集合 c++课程设计聊天程序 Linux与Unix Shell编程指南(PDF) C++从入门到精通,C++Primer中文版 嵌入式linux应用程序开发详解 VB程序设计资料ppt 我...
经典C/C++笔试题大全,大家可以好好的通过学习来准备笔试
C/C++经典笔试题汇总,很全,很好,很强大,只要你有耐心看完
西门子社招软件C/C++笔试题及答案
本人搜集的各个论坛,博客中的C/C++笔试面试题,绝对经典实用,希望能对学习C/C++的或者准备进军C/C++工作领域的朋友有所帮助
c/c++笔试题
腾讯 c/c++笔试题 记了一部分 1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 #define Max(a,b) ( a/b)?a:b 2、如何输出源文件的标题和目前执行行的行数 int line = __LINE__; char *...
C/C++笔试题和答案,经典集合。包含微软、华为等大公司的笔试题。
09年杭州/成都笔试题和相关笔记 09年杭州/成都笔试题和相关笔记
C/C++笔试题下载
C/C++笔试题(全)word文档 流传笔试题汇总
常见C/C++笔试题整理,含答案。汇总了大公司中比较经典的笔试题。
C/C++笔试题,有解答。还包括一些常考的信息网络方面的题目。
一套很基础很重要的C/C++题目,里面很多题目在一些大公司的笔试题里出现概率很高
非常全面的华为C/C++笔试题,非常值得拥有。
从别的地方下下来的,希望可以帮到大家。