首页 > 解决方案 > 查找标签之间的特定值

问题描述

我正在尝试编写一个正则表达式来让我从@update行中找到一个值(在打开/*@file和关闭之间@*/

示例代码:

/*@file
######################################################
@package        Webapp
@title          your_title
@version        1.0
@tags           tag1,tag2
@lines          215
@created        2020/04/03 20:42:49
@updated        2020/03/03 20:44:49
@description
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
######################################################
@*/

在这种情况下,所需的值为2020/03/03 20:44:49

我完成了我的尝试

[\/][*]@file\n([\S\s]*?)update([\S\s]*?)[@][*][\/]

还有我的 JS 代码

currentText.replace(/[\/][*]@file\n([\S\s]*?)update([\S\s]*?)[@][*][\/]/g, "SOME TEXT");

预先感谢您的帮助

标签: javascriptregex

解决方案


您可以将此正则表达式与捕获组一起使用:

/\/\*@file[^]*?@updated[ \t]*(.+)[^]*?@\*\//

正则表达式演示

正则表达式详细信息:

  • \/\*@file: 匹配文本/*@file
  • [^]*?: 匹配 0 或任何字符(包括换行符)(惰性)
  • @updated[ \t]*: 匹配文本@updated后跟 0 个或多个空格/制表符
  • (.+): 匹配并获取我们想要获取的价值
  • [^]*?: 匹配 0 或任何字符(包括换行符)(惰性)
  • @\*\/: 匹配文本@*/

推荐阅读