【问题标题】:How to retain text between RegEx matches?如何保留正则表达式匹配之间的文本?
【发布时间】:2016-01-29 12:42:56
【问题描述】:

我想从字符串中提取一些标签并根据它们执行一些操作,但剩余的字符串应该保留剥离标签并进行进一步处理。

可以一次性完成吗?

例如,如果我有一个带标签的代码:

var match, result = [], regex = /<oob>(.*?)<\/oob>/ig;
while (match = regex.exec(str)) {
    result.push( match[1] );
}

我可以同时在比赛之间取什么吗?

【问题讨论】:

  • 你自己有没有尝试过?
  • 什么样的“标签”,你用正则表达式解析 HTML 吗?
  • 我们需要实际的正则表达式代码......
  • 您希望如何准确地“使用”这些信息?
  • regex.lastIndex 的一些魔术技巧可能会有所帮助。但是您可以只使用 string#split 并将正则表达式模式包含在捕获组中。无需在 1 步中完成所有操作。

标签: javascript regex


【解决方案1】:

试试:

str.split(regex).forEach(function(str) {
   var match = str.match(regex);
   if (!match) {
       // between matches
   }
});

正则表达式需要在括号中包含整个内容,因此匹配的文本将在拆分数组中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多