在 JavaScript 中使用 RegExp 拆分字符串时保留分隔符
使用正则表达式 (RegExp) 将字符串拆分为段是 JavaScript 中的一项常见任务。但是,有时需要保留用于拆分的分隔符。
考虑以下字符串:
aaaaaa<br />† bbbb<br />‡ cccc
假设您希望在
string.split(/<br \/>&#?[a-zA-Z0-9]+;/g);
处拆分此字符串。分隔符,后跟特殊字符(† 或 ‡)。可以使用以下正则表达式:
当此正则表达式完成拆分任务时,它会丢弃string.split(/(<br \/>&#?[a-zA-Z0-9]+;)/g);
要保留分隔符,可以采用各种选项,如下所示:
通过将分隔符括在括号中,分隔符将被捕获为将结果数组中的元素分开。string.split(/(?=<br \/>&#?[a-zA-Z0-9]+;)/g);
另一种方法涉及使用正向前瞻断言:
此断言匹配分隔符之前的位置,而不实际消耗分隔符。string.split(/(?!<br \/>&#?[a-zA-Z0-9]+;)/g);
或者,可以使用负后向断言:
此断言匹配紧接定界符之后的位置,而不消耗string.split(/(.*?<br \/>&#?[a-zA-Z0-9]+;)/g);
此外,正则表达式可用于捕获分隔符之前的字符串部分:
这将捕获分隔符之前的所有内容。var str = 'Animation/rawr/javascript.js'; var tokens = str.match(/[^\/]+\/?|\//g);
处理路径时,需要特别考虑保留目录斜杠:
此正则表达式确保目录后面的斜杠也会被捕获。以上是在 JavaScript 中使用正则表达式拆分字符串时如何保留分隔符?的详细内容。更多信息请关注PHP中文网其他相关文章!