使用正则表达式通过 "\\" 和 "." 分割字符串

3

我有以下字符串:

  var str = 'd:\\projects\\my_project\\dist\\js\\example.js'

我希望将字符串分割为以下数组:
```

要分割的字符串

```
['d:', 'projects', 'my_project', 'dist', 'js', 'example', 'js']

如何使用 str.split(regex) 进行操作?我需要使用什么合适的 regex?已经尝试过 str.split('(\.|\\)') 和 str.split('\.|\\')(即不带括号)。当分别传递时,'\.' 和 '\\' 都可以正常工作,但组合起来就无法正常工作。请regex大师帮帮我!
3个回答

3
您正在将字符串传递给 split(),您需要传递 RegExp()注意: 如果您使用括号如/(\.|\\)/),则结果还包括.\\

var str = 'd:\\projects\\my_project\\dist\\js\\example.js'
console.log(str.split(/\.|\\/))


2

将正则表达式传递给 split

最初的回答

var str = 'd:\\projects\\my_project\\dist\\js\\example.js';
const res = str.split(/\.|\\/);
console.log(res);
.as-console-wrapper { max-height: 100% !important; top: auto; }

您传递了一个字符串 - 它正在寻找一个文字模式.|\,但它找不到。正则表达式(regex)使用斜杠/,而不是引号'"。最初的回答:您传递的字符串中包含错误的符号,应该使用正则表达式来匹配模式。请将引号替换为斜杠。

非常感谢。我已经尝试点赞,但不确定您是否因为我的声望少于15而获得信用。 - mepley
@mepley 如果您无法点赞,您可以通过点击勾选符号将最合适的答案标记为“已回答”。 - Nick Parsons
1
@NickParsons 谢谢!好了,现在差不多快到15声望值了,哈哈。 - mepley

2
其他答案已经解释了,你需要将一个正则表达式传递给String.split()而不是一个字符串。因此,作为替代方案,您可以使用这个正则表达式:/[\\.]/。这个正则表达式定义了一个字符集

var str = 'd:\\projects\\my_project\\dist\\js\\example.js';
console.log(str.split(/[\\.]/));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}


感谢大家的帮助!试着给你们所有人点赞了。 - mepley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接