JavaScript在数学运算符处拆分,同时仍然包含它

时间:2015-11-13 19:57:35

标签: javascript regex split

...好 我正在尝试将一串文本拆分为一个数组,其中出现“+”或“ - ”的实例。首先,我需要知道如何在加号处拆分并包含它。

我试过这个:#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(/(?=+) | (?=-)/)

1 个答案:

答案 0 :(得分:5)

看起来您需要/(?=[+])//(?=\+)/而不是/(?='+')/

+需要转义。

'3+5'.split(/(?=[+])/);
// ["3", "+5"]

或:

'3+5'.split(/(?=\+)/);
// ["3", "+5"]

如果您想将-作为分隔符加入:

'3+5-2'.split(/(?=[+-])/);
// ["3", "+5", "-2"]