首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript和regex:拆分字符串并保留分隔符

Javascript和regex:拆分字符串并保留分隔符
EN

Stack Overflow用户
提问于 2012-08-17 15:58:15
回答 8查看 112.2K关注 0票数 170

我有一个字符串:

代码语言:javascript
运行
复制
var string = "aaaaaa<br />&dagger; bbbb<br />&Dagger; cccc"

我想用分隔符<br />后跟一个特殊字符来拆分这个字符串。

为此,我使用以下代码:

代码语言:javascript
运行
复制
string.split(/<br \/>&#?[a-zA-Z0-9]+;/g);

我得到了我需要的东西,除了我丢失了分隔符。下面是示例:http://jsfiddle.net/JwrZ6/1/

如何保留分隔符?

EN

回答 8

Stack Overflow用户

发布于 2012-08-17 16:01:56

使用(positive) lookahead,以便正则表达式断言特殊字符存在,但实际上并不匹配它:

代码语言:javascript
运行
复制
string.split(/<br \/>(?=&#?[a-zA-Z0-9]+;)/g);

将其付诸实践:

代码语言:javascript
运行
复制
var string = "aaaaaa<br />&dagger; bbbb<br />&Dagger; cccc";
console.log(string.split(/<br \/>(?=&#?[a-zA-Z0-9]+;)/g));

票数 124
EN

Stack Overflow用户

发布于 2012-08-17 16:09:48

如果将分隔符放在括号中,它将是返回数组的一部分。

代码语言:javascript
运行
复制
string.split(/(<br \/>&#?[a-zA-Z0-9]+);/g);
// returns ["aaaaaa", "<br />&dagger;", "bbbb", "<br />&Dagger;", "cccc"]

根据您希望保留的部分,更改您匹配的子组

代码语言:javascript
运行
复制
string.split(/(<br \/>)&#?[a-zA-Z0-9]+;/g);
// returns ["aaaaaa", "<br />", "bbbb", "<br />", "cccc"]

您可以通过忽略字母string.split(/()&#?a-z0-9+;/gi)的大小写来改进表达式;

您可以像这样匹配预定义的组:\d等于[0-9]\w等于[a-zA-Z0-9_]。这意味着您的表达式可能如下所示。

代码语言:javascript
运行
复制
string.split(/<br \/>(&#?[a-z\d]+;)/gi);

有一个良好的Regular Expression Reference on JavaScriptKit

票数 71
EN

Stack Overflow用户

发布于 2015-10-21 14:43:07

在这里也回答了JavaScript Split Regular Expression keep the delimiter

在正则表达式示例中使用(?=pattern)先行模式

代码语言:javascript
运行
复制
var string = '500x500-11*90~1+1';
string = string.replace(/(?=[$-/:-?{-~!"^_`\[\]])/gi, ",");
string = string.split(",");

这将为您提供以下结果。

代码语言:javascript
运行
复制
[ '500x500', '-11', '*90', '~1', '+1' ]

也可以直接拆分

代码语言:javascript
运行
复制
string = string.split(/(?=[$-/:-?{-~!"^_`\[\]])/gi);

给出相同的结果

代码语言:javascript
运行
复制
[ '500x500', '-11', '*90', '~1', '+1' ]
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12001953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档