javascript - 如何将此字符串拆分为数组

原文 标签 javascript regex string

如果我有一个如下所示的字符串,并且每次都不是静态的。

 var str = "#a
            b
            c
            _
            ele1
            ele2
            #d
            e
            f
            _
            ele3
            ";


从上面的字符串中,我想检索如下的数组

     arr = [ "#a
               b
               c
              _",
             "ele1",
             "ele2",
             "#d
               e
               f
              _",
             "ele3"
           ]


条件是:#和_之间的所有内容都作为一个项目;这些定界符之外的每一行都是单独的项目。

我该怎么办。有任何想法。...请使用this小提琴。

最佳答案

考虑到我在问题下的评论中的标准:

var str = "#a\nb\nc\n_\nfoo\nbar\n#d\ne\nf\n_";
var re = /((?:#[^_]*_)|(?:^.*$))/mg;
var result = str.match(re);
console.log(result);
// [ '#a\nb\nc\n_', 'foo', 'bar', '#d\ne\nf\n_' ]


正则表达式解释:匹配项是从#_-(?:#[^_]*_)的所有内容,或者是一行中的所有内容-(?:^.*$)

编辑:由于空白...有点不同的策略:

var str = $('#a').text();
var re = /^\s*((?:#[^_]*_)|(?:.*?$))/mg;
var result = [], match;
while ((match = re.exec(str))) {
  result.push(match[1]);
}
console.log(result);​

关于javascript - 如何将此字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9325223/

相关文章:

javascript - Stripe 未定义;请修复或添加/* global Stripe */

c# - 正则表达式,允许数字介于-90.0和+90.0之间

c - 将字符串打印到特定的控制台坐标-C

arrays - 在字符串数组中搜索多个单词(或字符)(swift)

javascript - AngularJS的依赖注入(inject)中 ".config([...])"中的方括号是什么意思

javascript - IOS中的HTML5音频currentTime

javascript - Google Maps v3,错误消息 “Google is undefined”

javascript - JavaScript正则表达式用于字母数字,但不是全部数字

Javascript - 为每个字母添加一个跨度

javascript - Node js .replace()不是函数