gpt4 book ai didi

javascript - 捕获括号 -/(\d)/?或/\s*;\s*/?

转载 作者:行者123 更新时间:2023-12-03 05:02:44 24 4
gpt4 key购买 nike

我正在阅读有关 split 的内容,下面是一个查看字符串值的变量。但是我不明白这些符号在寻找什么。

根据页面:如果分隔符包含捕获括号,则在数组中返回匹配的结果。

    var myString = 'Hello 1 word. Sentence number 2.';
var splits = myString.split(/(\d)/);

console.log(splits);

// Results
[ "Hello ", "1", " word. Sentence number ", "2", "." ]

我的问题是,这里发生了什么?括号“(”或“)”不是字符串的一部分。为什么是空格或者“.”有些人分开了,而另一些人却没有分开?

另一个是/\s*;\s*

表示如果有 0 个或更多空格,则删除前后的分号。这是否意味着/\s* 意味着它会查找空格并删除和 ';'在这种情况下是分隔符?

  var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ';

console.log(names);

var re = /\s*;\s*/;
var nameList = names.split(re);

console.log(nameList);

// Results
["Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand "]

如果是这样,如果我的字符串看起来像这样,为什么/\s*^\s*/不删除 ^ 符号前后的空格。

  var names = 'Harry Trump ^Fred Barney^ Helen Rigby ^ Bill Abel ^Chris Hand ';

console.log(names);

var re = /\s*^\s*/;
var nameList = names.split(re);

console.log(nameList);

我想知道这些符号的含义以及它们为什么按一定顺序排列。谢谢你。

最佳答案

看来您的示例来自 here .

首先让我们看一下这个/(\d)/。从内到外,认识到 \d 转义了所有数字。现在,从文章中,将转义符括起来的括号告诉 split 方法将分隔符(在本例中为任何数字)保留在返回的数组中。请注意,如果没有括号,返回的数组将不会包含数字元素(当然是字符串)。最后,将其包含在斜杠 (//) 中以创建 regular expression 。基本上这种情况是这样的:按数字分割字符串并将数字保留在返回的数组中。

第二种情况/\s*;\s*稍微复杂一些,需要对正则表达式有一定的了解。首先请注意 \s 转义了空格。在正则表达式中,字符 c 后跟 * 表示“按连续顺序查找 0 个或多个 c”。所以这个正则表达式匹配像 ' 这样的字符串; '';' 等(我添加了单引号以显示空格)。请注意,在本例中,我们没有括号,因此分号将从返回的数组中排除。

如果您仍然遇到困难,我建议您阅读有关正则表达式的内容并练习编写它们。这个website很棒,只是要注意该网站上的正则表达式在语法方面可能与 JavaScript 中使用的稍有不同。

关于javascript - 捕获括号 -/(\d)/?或/\s*;\s*/?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42148973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com