首页 >web前端 >js教程 >在 JavaScript 中使用正则表达式拆分字符串时如何保留分隔符?

在 JavaScript 中使用正则表达式拆分字符串时如何保留分隔符?

DDD
DDD原创
2024-11-28 16:31:20487浏览

How Can I Preserve Delimiters When Splitting Strings in JavaScript Using Regular Expressions?

在 JavaScript 中使用 RegExp 拆分字符串时保留分隔符

使用正则表达式 (RegExp) 将字符串拆分为段是 JavaScript 中的一项常见任务。但是,有时需要保留用于拆分的分隔符。

考虑以下字符串:

aaaaaa<br />&dagger; bbbb<br />&Dagger; cccc

假设您希望在

string.split(/<br \/>&amp;#?[a-zA-Z0-9]+;/g);

处拆分此字符串。分隔符,后跟特殊字符(† 或 ‡)。可以使用以下正则表达式:

当此正则表达式完成拆分任务时,它会丢弃
;分隔符。在某些情况下,这可能是不可取的。
string.split(/(<br \/>&amp;#?[a-zA-Z0-9]+;)/g);

要保留分隔符,可以采用各种选项,如下所示:

通过将分隔符括在括号中,分隔符将被捕获为将结果数组中的元素分开。
string.split(/(?=<br \/>&amp;#?[a-zA-Z0-9]+;)/g);

另一种方法涉及使用正向前瞻断言:

此断言匹配分隔符之前的位置,而不实际消耗分隔符。
string.split(/(?!<br \/>&amp;#?[a-zA-Z0-9]+;)/g);

或者,可以使用负后向断言:

此断言匹配紧接定界符之后的位置,而不消耗
string.split(/(.*?<br \/>&amp;#?[a-zA-Z0-9]+;)/g);

此外,正则表达式可用于捕获分隔符之前的字符串部分:

这将捕获分隔符之前的所有内容。
var str = 'Animation/rawr/javascript.js';
var tokens = str.match(/[^\/]+\/?|\//g);

处理路径时,需要特别考虑保留目录斜杠:

此正则表达式确保目录后面的斜杠也会被捕获。

以上是在 JavaScript 中使用正则表达式拆分字符串时如何保留分隔符?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn