Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 连接先行正则表达式并保留(全部)分隔符?_Javascript_Regex_Split - Fatal编程技术网

Javascript 连接先行正则表达式并保留(全部)分隔符?

Javascript 连接先行正则表达式并保留(全部)分隔符?,javascript,regex,split,Javascript,Regex,Split,现在,我的正则表达式遍历字符串并通过出现/将其拆分,将斜杠保留在数组中 var str = 'File/path/to/a/file.js'; let delim = /[^\/]+\/?|\//g; var tokens = str.match(delim); // ["File/","path/","to/","a/","file.js"] 作为练习,我还想按、?和进行拆分。我怎样才能做到这一点而不把事情弄得一团糟呢?我是一个初学者,所以我最好不要有一个大的正则表达式字符串。理想情况下,

现在,我的正则表达式遍历字符串并通过出现
/
将其拆分,将斜杠保留在数组中

var str = 'File/path/to/a/file.js';
let delim = /[^\/]+\/?|\//g; 
var tokens = str.match(delim);
// ["File/","path/","to/","a/","file.js"]

作为练习,我还想按
进行拆分。我怎样才能做到这一点而不把事情弄得一团糟呢?我是一个初学者,所以我最好不要有一个大的正则表达式字符串。理想情况下,我会创建一个正则表达式数组(数组的每个元素处理一个分隔符)。我已尝试执行此操作,但失败。

在匹配1+个字符后,您可以使用字符类来包含所有的分隔符,这些字符与除否定字符类中的分隔符以外的任何字符都匹配:

var str='File/path/to/a/File.js';
设arr=str.match(/[^\/.?!]+(?:[\/.?!]\$)/g);

控制台日志(arr)在匹配1+个字符后,您可以使用字符类来包含所有的分隔符,这些字符与除否定字符类中的分隔符以外的任何字符相匹配:

var str='File/path/to/a/File.js';
设arr=str.match(/[^\/.?!]+(?:[\/.?!]\$)/g);

控制台日志(arr)您可以使用:
让arr=str.match(/[^\/.?!]+(?:[\/.?!].$)/g)您可以使用:
让arr=str.match(/[^\/.?!]+(?:[\/.?!].$)/g)