首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >达特的splitMapJoin在JavaScript还是TypeScript有什么替代办法吗?

达特的splitMapJoin在JavaScript还是TypeScript有什么替代办法吗?
EN

Stack Overflow用户
提问于 2020-09-08 17:27:11
回答 1查看 291关注 0票数 0

我在Dart中有一个函数,它使用正则表达式以不同的方式处理匹配和不匹配的字符串部分。

代码语言:javascript
复制
Future<List<String>> _getQuestionParts(String questionText) async {
List<String> parts = List();

questionText.splitMapJoin(
  RegExp(r'&&[\s\S]*?\S##'),
  onNonMatch: (nonMatch) {
    nonMatch = nonMatch.trim();

    if (nonMatch.isNotEmpty) {
      parts.add(_texToLatex(nonMatch));
    }

    return nonMatch;
  },
  onMatch: (match) {
    String matchString = match.group(0);

    parts.add(matchString);

    return matchString;
  },
);

for (int i = 0; i < parts.length; i++) {
  String part = parts[i];

  if (part.startsWith('&&') && part.endsWith('##')) {
    parts[i] = await _getBase64String(part, 'assets');
  }
}

return parts;

}

样本文本是-

图中所示冷凝器系统的总能量为&&

/17.ELECTROSTATIC电位和电容_12.jpeg&#介质/17.静电势和CAPACITANCE_12.txt##

在这里,两个被不同处理的部分是-

1.

图中所示的冷凝器系统中的总能量将是

&&media/17.静电势与电容_12.jpeg&#媒体/17.静电势与CAPACITANCE_12.txt##

有办法在JavaScript中获得这个功能吗?

我认为这将是一个分裂和匹配的组合,但它应该返回匹配的和不匹配的部分在他们正确的顺序。

EN

回答 1

Stack Overflow用户

发布于 2020-09-08 17:34:08

它是用一个组(括号)来解决的,同时分裂-

代码语言:javascript
复制
var matches = text.split(/(&&[\s\S]+?&&##[\s\S]+?##)/gm);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63798834

复制
相关文章

相似问题

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