作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个任务,我必须打开许多文件,搜索 //@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="(?<!//@public doc\x0D\x0A )/\*.+?\*/" replace="" flags="gs" byline="false">
<fileset refid="jsmvcdoc.fileset"/>
</replaceregexp>
最佳答案
我会这样分解:
有点像
<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/
我是一名优秀的程序员,十分优秀!