gpt4 book ai didi

javascript - 如何用正则表达式替换特定的 JavaScript 注释?

转载 作者:行者123 更新时间:2023-11-29 22:21:20 26 4
gpt4 key购买 nike

我有一个任务,我必须打开许多文件,搜索 //@public object 模式,如果没有匹配项,则删除该文件中所有没有 //@public doc 在它之前。

例如,可能有类似这样的东西:

//@public doc
/**
* @function
* checks for specific conditions
* specific variables
*/

并且保持原样。但是所有其他 JavaScript 注释都需要删除。

它的正则表达式是什么,如何实现?

提前谢谢你。

与此同时,我想到了以下解决方案

    <fileset id="jsmvcdoc.fileset" dir="${doctempfolder}" includes="**/*.js">
<not>
<contains text="//@public object" casesensitive="no"/>
</not>
</fileset>

<!-- JS Comments -->
<replaceregexp match="(?!doc. +)/\*.+?\*/" replace="" flags="gs" byline="false">
<fileset refid="jsmvcdoc.fileset"/>
</replaceregexp>

过滤文件集只包括那些不包含//@public 对象的文件,但我不知道如何制作正则表达式,它将去除所有注释,除了那些以行开头的注释//@public doc

这样解决的:

<!-- strip out js comments not preceeded by //@public doc -->
<replaceregexp match="(?&lt;!//@public doc\x0D\x0A )/\*.+?\*/" replace="" flags="gs" byline="false">
<fileset refid="jsmvcdoc.fileset"/>
</replaceregexp>

最佳答案

我会这样分解:

  1. 选择包含模式的文件。
  2. 在特定的正则表达式上运行替换任务。

有点像

<replaceregexp byline="true">
<regexp pattern="/\*[\d\D]*?\*/"/>
<substitution expression=""/>
<fileset dir="${JSfiles.path}" includes="**/*.js">
<contains text="//@public object" casesensitive="no"/>
</fileset>
</replaceregexp>

我还没有测试过,所以你可能需要稍微调整一下正则表达式。

关于javascript - 如何用正则表达式替换特定的 JavaScript 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12283528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com