我在这里创建了两个函数,它们几乎100%相同。唯一的区别是函数的regex字符集的顺序不同。为什么这两个函数会产生不同的输出?
// FUNCTION 1:
function splitify(str) {
let divs= str.split(/[\." "-,]/) //order different [inside]
return divs
}
console.log(splitify("Hello World,I-am code"));
//OUTPUT: ["Hello", "World", "I-am", "code"]
//FUNCTION 2
function splitify2(str) {
let divs = str.split(/[-" ",\.]/); //order different [inside]
return divs;
}
console.log(splitify2('Hello World,I-am code'));
//OUTPUT: ['Hello', 'World', 'I', 'am', 'code'];
括号内的regex结构略有不同。
例如,当您试图匹配字符串-.
时,regex应该是/-\./
,因为.
表示任何单个字符,并且应该转义为文字。
但是,使用括号可以查找文字,但其中的-
是不同的。例如,[a-z]
表示从a到z的范围,因此需要将其转义,以便将其视为文字。
因此,您的语法/[\.“-,]/
应该类似于/[.\-,]/
。
请注意,.
不需要转义,而且空格与任何其他char一样,不需要引号。
问题内容: 首先,我的Java版本: 输出为: 31 -117 8 0 0 0 0 0 0 -53 72 -51 -55 -55 47 -49 47 -54 73 1 0 -83 32 -21 -7 10 0 0 0 然后是Go版本: 输出: 31 139 8 0 0 9 110 136 0 255 202 72 205 201 201 47 207 47 202 73 1 0 0 0 255 2
我试图做一个函数,返回数组的长度,但函数总是返回8
问题内容: 为什么需要添加“ L”字母以获得正确的长值?还有什么其他价值呢? 问题答案: 你的第一个值实际上是一个long(因为是,并且是,所以带值的值的结果就是一个long值。 但是第二个值是一个整数(因为你仅将一个值与一个值混用。所以结果将是一个整数。现在,所获得的结果超出了整数的实际范围。因此,在分配给该变量之前,被截断以适合有效的整数范围。 查看以下打印语句: 当你运行上面的代码时: 输出
问题内容: 以下代码可以在Swift Playground中运行: 这是打印在我的Mac上的结果: 为什么两次打印的结果不同?更有趣的是,当我更改 bbb 的函数签名使其与 aaa相同时 ,两次打印的结果相同。如果在这两个函数调用中使用 全局var 而不是 a.key ,则两次打印的结果是相同的。有谁知道为什么会发生这种奇怪的行为? 问题答案: 为什么两次打印的结果不同? 因为对于每个函数调用,S
我正在java中执行以下代码,但对于数学上应该是相同的数字,我得到了两个不同的答案。 输出:
我希望以下Java代码将字符串拆分为三个项: 然而,我只得到两件。 我必须承认,我并没有深入分析这一点,但对我来说,这似乎违反直觉。Python和C#都在Python中生成三项,如下所示: 在C#中: 我错过了什么? 这是Java 1.8.0\u 101。