好的,伙计们
这是我的2根琴弦D:/path/to/project/js/folder/LVL1/LVL2/mylibrary.js
,D:/path/to/project/js/folder/mylibrary.js
对于第一个我想要得到/LVL1/LVL2
,对于第二个我想要得到一个斜线/
这是我的正则表达式 ^.+js\/folder(\/[^\.]*[^\/])\/.+\.js+$
它对第一个工作正常,但对第二个则不返回任何内容
这将用于ant任务(更具体地是jscomp
)。基本上,我想编译“ D:/ path / to / project / js / folder /”中的每个javascript文件,然后将输出与嵌套文件夹放在其他位置。如果有帮助,这是我的蚂蚁任务的摘录。
<target name="compileJS" description="minifier les fichier JS">
<taskdef name="jscomp"
classname="com.google.javascript.jscomp.ant.CompileTask"
classpath="${lib.dir}/thirdparty/closure-compiler/compiler.jar" />
<taskdef resource="net/sf/antcontrib/cpptasks/antlib.xml">
<classpath>
<pathelement location="${lib.dir}/thirdparty/ant-contrib/cpptasks.jar" />
</classpath>
</taskdef>
<echo message="Searching for files in ${basedir}\charte\js" />
<for param="filename">
<path>
<fileset dir="${basedir}/charte/js">
</fileset>
</path>
<sequential id="i">
<!-- This gets the filename without the directory path. -->
<basename property="file.@{filename}" file="@{filename}" />
<propertyregex property="file"
input="@{filename}"
regexp="\\"
replace="/"
override="true"
defaultvalue="@{filename}" />
<echo message=">...>...> input = ${file}"/>
<propertyregex property="directory.@{filename}"
input="${file}"
regexp="^.+js\/folder(\/[^\.]*[^\/])\/.+[\.js]+$"
select="\1"
casesensitive="false" override="true" />
<echo message=">...>...> directory = ${directory.@{filename}}"/>
<echo message="Compressing file ${file.@{filename}} in ${directory.@{filename}}" />
<jscomp compilationLevel="simple"
output="${build.dir}/charte/js/directory.@{filename}/${file.@{filename}}">
<sources dir="${base.dir}/charte/js/directory.@{filename}/">
<file name="${file.@{filename}}" />
</sources>
</jscomp>
</sequential>
</for>
</target>
谢谢
你可以使用这种模式
^.+js\/folder(\/|.*?)[^\/]+?\.js$
^ # Start of string/line
. # Any character except line break
+ # (one or more)(greedy)
js # "js"
\/ # "/"
folder # "folder"
( # Capturing Group (1)
\/ # "/"
| # OR
. # Any character except line break
*? # (zero or more)(lazy)
) # End of # Capturing Group (1)
[^\/] # Character not in [^\/]
+? # (one or more)(lazy)
\. # "."
js$ # End of string/line
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句