`
zhouyrt
  • 浏览: 1163336 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一道关于"/g"笔试题

 
阅读更多

正则里“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++基础、数据结构、操作系统、网络和编程...

    Google笔试题(附答案)

    1. 这是一道代数题。WWWDOT - GOOGLE = DOTCOM,需要找到M和E的值。解题的关键在于理解每个字母代表一个数字,且不允许多余的零在前面。W可以代表2或5,D是1,O是0,T是7。因此,我们可以得出:220DOT - 167OGLE = ...

    豆瓣2013校园招聘研发笔试题

    根据给定的豆瓣2013校园招聘研发笔试题,我们可以从中提炼出多个重要的IT知识点,涵盖编程、数据结构、算法、数据库管理以及网络技术等多个领域。下面将逐一解析: ### 1. 函数递归与输出结果预测 题目要求求解...

    猿辅导2019校招技术类笔试题.docx

    - 这是一道典型的分治算法复杂度分析题。 - 根据分治算法的时间复杂度公式\(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++语言程序设计笔试面试题.docx

    在C/C++编程中,面试和笔试题通常会涵盖语言的基础概念、内存管理、类型系统以及程序设计技巧。以下是对给定试题的详细解析: 1. **试题6 - GetMemory内存申请**: 试题6中的GetMemory函数通过传入字符串指针的...

    湖北省鄂州市鄂城区汀祖中学2020学年七年级英语上学期第一次月考试题(无答案) 人教新目标版.doc

    第26题,Gg和Hh在发音时,Gg有/g/的发音,而Hh有/h/的发音,两者没有相同的发音,因此没有正确答案,这可能是一道需要特别注意的问题。 这些题目旨在检查学生对英语基础词汇、语音知识、日常对话理解以及听力技巧的...

    sony 笔试逻辑部分.txt

    该序列没有明显的规律,但考虑到这是一道笔试题,可能是测试考生对字母表顺序的记忆以及规律推理能力。在没有明确线索的情况下,可以尝试寻找其他可能的规律。这里给出一种合理的假设:序列中的字母按照一定的间隔...

    交通银行(Java笔试2).docx

    9. 这是一道逻辑题,根据题目描述,可以推断出瓦尔、林恩和克里斯的关系。由于没有违反伦理道德的问题,所以林恩是唯一可能的性别不同的选项。正确答案是 A. 林恩。 10. 示例代码中,`change`方法改变的是字符串...

Global site tag (gtag.js) - Google Analytics