Я перебираю список файлов внутри базового каталога, используя для библиотеки Ant-Contrib. Я хочу получить часть пути к файлу после базового каталога, но без имени файла.Ant Propertyregex часть пути к файлу
Например мой базовый каталог: C: \ Проекты \ Dev \ Main \ Sample игры \ JS У меня есть много JS скриптов и внутри этой папки и подпапок имя как
C:\projects\Dev\Main\Sample Game\js\simple\welcome\ss.js
C:\projects\Dev\Main\Sample Game\js\hard\welcome\cc.js
C:\projects\Dev\Main\Sample Game\js\easy\welcome\ee.js
Я хочу, чтобы получить только \simple\welcome\
. Я использую приведенный ниже код.
<for param="filename">
<path id="project.fileset">
<fileset dir="${basedir}/js" includes="/*">
<include name="**/*.js" />
</fileset>
</path>
<sequential>
<basename property="[email protected]{filename}" file="@{filename}"/>
<propertyregex property="currentdirectory"
input="@{filename}"
regexp="${basedir}/js//([^//]*)//${[email protected]{filename}}"
select="\1"
casesensitive="false"
override="true" />
<echo message="FullPath:@{filename}" />
<echo message="Directory:${currentdirectory}" />
</sequential>
</for>
Я не знаю, что регулярное выражение я должен предоставить там ... Я попытался с регулярным выражением ${basedir}/js//([^//]*)//${[email protected]{filename}}
, но получаю ошибку ниже
java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 3
C:\projects\Dev\Main\Sample Game\js\simple\welcome\ss.js
Пожалуйста, дать некоторые предложения для этого regex
Я не вижу задачи, связанной с регулярным выражением, в вашем фрагменте, она просто тянет базовое имя. Однако regex. + \\ js (. + \\\) поймает \ simple \ welcome \ как группу 1 из C: \ projects \ Dev \ Main \ Sample Game \ js \ simple \ welcome \ ss.js – Rebse