用 "\\" 和 "." 分割字符串使用正则表达式 [重复]

Posted

技术标签:

【中文标题】用 "\\\\" 和 "." 分割字符串使用正则表达式 [重复]【英文标题】:Splitting strings by both "\\" and "." with regex [duplicate]用 "\\" 和 "." 分割字符串使用正则表达式 [重复] 【发布时间】:2019-09-28 21:45:54 【问题描述】:

我有以下字符串:

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

我想将字符串拆分成数组如下:

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

如何使用 str.split(regex) 做到这一点?我需要什么正确的正则表达式?

已经尝试过str.split('(\.|\\)')str.split('\.|\\')(即不带括号)

'\.''\\' 在单独通过时都可以工作,但不能组合使用。

请帮助我的正则表达式大师!

【问题讨论】:

【参考方案1】:

您将字符串传递给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 如果您不能投票,您可以随时通过单击勾号将最合适的答案标记为“已回答” @NickParsons 谢谢!好的,现在几乎达到 15 声望了大声笑【参考方案3】:

其他答案已经说明您需要将正则表达式传递给String.split(),而不是string。因此,或者,您可以使用这个正则表达式:/[\\.]/。这个正则表达式定义了一个Character Set:

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;

【讨论】:

谢谢大家的帮助!试图给大家投票。

以上是关于用 "\\" 和 "." 分割字符串使用正则表达式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

用java怎么验证其文件上传的大小和类型

两个字符串的"56.5"和 "56.18", 保留两位小数,怎样相加啊?用javascript来解决~~~

不想用where 1=1

怎么把json用jquery组合成table

null和""的区别

java用json传值怎么写修改