我有一个包含两个反斜杠的字符串:
str = "active - error - oakp-ms-001 Volume Usage-E:\ PercentUsed E:\"
我只想选择" oakp-ms-001
"从上面的字符串,但由于字符串中包含反斜杠,我无法分割字符串。
如果有任何解决方案,请告诉我?
答案 0 :(得分:8)
首先,我会注意到您引用的代码有语法错误:
str = "active - error - oakp-ms-001 Volume Usage-E:\ PercentUsed E:\"
该字符串上没有结尾"
,因为最后的\"
是转义"
,而不是反斜杠后跟结尾引号。
如果字符串上有结尾引号,则它中没有反斜杠(\
后面的空格是一个无效的转义,最后只是一个空格。)
因此,让我们假设一些有效而不是语法错误:
str = "active - error - oakp-ms-001 Volume Usage-E:\\ PercentUsed E:\\";
其中有反斜杠。
你需要做的事情并不是真正涉及“分裂”,而是如果你想要拆分包含反斜杠的东西:
var parts = str.split("\\"); // Splits on a single backslash
但是我没有看到分裂如何帮助你所说的你想要的东西。
你必须确定你想要的字符串的哪些部分是一致的,然后创建一些东西(可能是带有捕获组的正则表达式),它可以找到相对于没有的文本而变化的文本。 / p>
例如:
var str = "active - error - oakp-ms-001 Volume Usage-E:\\ PercentUsed E:\\";
var match = str.match(/error - (.*?) ?Volume/);
if (match) {
console.log(match[1]); // oakp-ms-001
}
在那里我假设"error - "
部分和"Volume"
部分(可能在它前面有一个空格)是一致的,并且你想要它们之间的文本。
答案 1 :(得分:1)
JSON.stringify(fileName).split(“ \”);
在拆分内应该是双反斜杠
答案 2 :(得分:0)
逃避你的反斜杠! \成为\\所以实际上你分配如下:
str =“active - error - oakp-ms-001 Volume Usage-E:\\ PercentUsed E:\\”
答案 3 :(得分:0)
这是一个非终结字符串(您可以转义结束引号),所以我假设您的字符串看起来更像是这样:
str = "active - error - oakp-ms-001 Volume Usage-E:\\ PercentUsed E:\\";
如果你想用反斜杠和空格分割字符串,第一步是用反斜杠分割,如下所示:
step2 = str.split("\\");
请注意,您必须在此处转义反斜杠。
要做的第二件事是现在用空格分割这个字符串,但因为它是一个数组,你必须用一个循环来做这个:
var step3 = [];
for(var i = 0; i < step2.length; i++){
step3 += step2[i].split(" ");
}
然后你可以简单地将step3拆分为&#34;,&#34;字符并在&#34;卷&#34;之前找到该短语。这可能不是最佳答案,但它可以为您提供所需的数据。
答案 4 :(得分:0)
这是此问题的解决方案 str.split(/ [\ $] /)