加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 如何系统地替换大量文本中的胡须标签中的文本?

发布时间:2020-12-14 05:58:24 所属栏目:百科 来源:网络整理
导读:我有很多模板利用胡须标签来确定放置用户数据的位置.这些模板存储为字符串. 当我在胡子中调用渲染函数时,我提供了一个复杂的JSON对象,该对象包含许多字符串和子文档的数组. 我在mustache标记中错误地声明要使用数组中的特定元素,如下所示: {{dataElementArr
我有很多模板利用胡须标签来确定放置用户数据的位置.这些模板存储为字符串.

当我在胡子中调用渲染函数时,我提供了一个复杂的JSON对象,该对象包含许多字符串和子文档的数组.

我在mustache标记中错误地声明要使用数组中的特定元素,如下所示:

{{dataElementArray[2].subElement}}
{{anotherElement.dataArray[1]}}

相反,我想将每个模板中的所有事件更改为适当的胡须语法,以便寻址元素,如下所示:

{{dataElementArray.2.subElement}}
{{anotherElement.dataArray.1}}

系统地浏览每个模板(表示为字符串)并使用正则表达式来更改每个标记中的内容的最佳方法是什么?我有超过50个模板,其中大多数是数百行,每个模板中有数百个标签.

我正在为这个应用程序使用JavaScript / Node.js.

解决方法

对于单个正则表达式来说,这是一项艰巨的(但并非不可能)的任务.幸运的是,我们没有理由只用一个.一种更容易(也更强大)的方法是使用两个正则表达式:一个匹配替换标记({{curly brackets}}中包含的内容),另一个用点索引器替换数组索引器的实例.这是我的解决方案:

s.replace( /{{(.*?)}}/g,function(x){          // this grabs replacement tags
  return x.replace( /[(d+)]/g,'.$1' )});      // this replaces array indexers

注意:我没有用entire mustache syntax分析这个解决方案,所以如果你使用的不仅仅是标准标签,我不能保证它会起作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读