正则里“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'; }
相关推荐
1. 字符规则(注意:区分大小写):j<a<G<g 2. 最后一列(1,2,3,4,5)需出现在排序后的第一列 3. 排序后输出的内容格式保持不变(即两两一组,以空格隔开) 字符串的内容为: w1 b1 Bb Ba 5f 6G kk 1p UG 8y 1 aY ...
15. **数组排序题目**:这是一道关于数组处理的编程题,要求保持非零整数在前,零在后,同时保持非零整数有序,不使用额外空间,要考虑效率和异常处理。 这些题目涵盖了C/C++基础、数据结构、操作系统、网络和编程...
1. 这是一道代数题。WWWDOT - GOOGLE = DOTCOM,需要找到M和E的值。解题的关键在于理解每个字母代表一个数字,且不允许多余的零在前面。W可以代表2或5,D是1,O是0,T是7。因此,我们可以得出:220DOT - 167OGLE = ...
根据给定的豆瓣2013校园招聘研发笔试题,我们可以从中提炼出多个重要的IT知识点,涵盖编程、数据结构、算法、数据库管理以及网络技术等多个领域。下面将逐一解析: ### 1. 函数递归与输出结果预测 题目要求求解...
- 这是一道典型的分治算法复杂度分析题。 - 根据分治算法的时间复杂度公式\(T(n) = aT(n/b) + f(n)\),这里\(a = 2\),\(b = 2\),\(f(n) = g(n) = O(n)\)。 - 对照Master定理条件,\(n^{log_ba} = n^{log_22} = n\)...
在C/C++编程中,面试和笔试题通常会涵盖语言的基础概念、内存管理、类型系统以及程序设计技巧。以下是对给定试题的详细解析: 1. **试题6 - GetMemory内存申请**: 试题6中的GetMemory函数通过传入字符串指针的...
第26题,Gg和Hh在发音时,Gg有/g/的发音,而Hh有/h/的发音,两者没有相同的发音,因此没有正确答案,这可能是一道需要特别注意的问题。 这些题目旨在检查学生对英语基础词汇、语音知识、日常对话理解以及听力技巧的...
该序列没有明显的规律,但考虑到这是一道笔试题,可能是测试考生对字母表顺序的记忆以及规律推理能力。在没有明确线索的情况下,可以尝试寻找其他可能的规律。这里给出一种合理的假设:序列中的字母按照一定的间隔...
9. 这是一道逻辑题,根据题目描述,可以推断出瓦尔、林恩和克里斯的关系。由于没有违反伦理道德的问题,所以林恩是唯一可能的性别不同的选项。正确答案是 A. 林恩。 10. 示例代码中,`change`方法改变的是字符串...