...好 我正在尝试将一串文本拆分为一个数组,其中出现“+”或“ - ”的实例。首先,我需要知道如何在加号处拆分并包含它。
我试过这个:#include <stdio.h>
/*!
@brief Returns one component of the OS version
@param component 1=major, 2=minor, 3=bugfix
*/
int GetOSVersionComponent(int component) {
char cmd[64] ;
sprintf(
cmd,
"sw_vers -productVersion | awk -F '.' '{print $%d}'",
component
) ;
FILE* stdoutFile = popen(cmd, "r") ;
int answer = 0 ;
if (stdoutFile) {
char buff[16] ;
char *stdout = fgets(buff, sizeof(buff), stdoutFile) ;
pclose(stdoutFile) ;
sscanf(stdout, "%d", &answer) ;
}
return answer ;
}
int main(int argc, const char * argv[]) {
printf(
"Your OS version is: %d.%d.%d\n",
GetOSVersionComponent(1),
GetOSVersionComponent(2),
GetOSVersionComponent(3)
) ;
return 0 ;
}
,我想要的结果是'3+5'.split(/(?='+')/)
,但它似乎不起作用,只生成["3","+5"]
的数组,这很酷但不是我的我正在寻找。我发现的所有资源都说这应该有效但不是我想要的。我用逗号代替加号尝试了它,它产生了我正在寻找的结果,但我有点需要加号。
其次我想以同样的方式将它拆分为负数。加号不工作我真的没有代码,但我认为它与我找到的资源有点相似:["3+5"]
结果为'3+5-2'.split(/(?=+) | (?=-)/)
答案 0 :(得分:5)
看起来您需要/(?=[+])/
或/(?=\+)/
而不是/(?='+')/
。
+
需要转义。
'3+5'.split(/(?=[+])/);
// ["3", "+5"]
或:
'3+5'.split(/(?=\+)/);
// ["3", "+5"]
如果您想将-
作为分隔符加入:
'3+5-2'.split(/(?=[+-])/);
// ["3", "+5", "-2"]