2013-05-25 1 views
0

У меня есть файл имеет много линий, такие как:Как использовать муравей, чтобы извлечь все подстроки в файл без использования регулярных выражений

aaa bbb ccc ddd eeee 
a111 b111 c111 d111 
A222 B222 X222 Y222 Z222 
FFF GGG HHH 

и т.д.

я надеюсь использовать муравей, чтобы извлечь все подстроки в этом файл

aaa bbb ccc ddd eeee 
a111 b111 c111 d111 
A222 B222 X222 Y222 Z222 
FFF GGG HHH 

в каждой строке, т.е. все ааа ГЭБ ссс ддд еее в 1-й линии, все FFF GGG HHH в последней строке и т.д.

Помощник Pls, как это сделать, но не используя регулярное выражение ???

Мой код:

<for list="@{line}" delimiter=" " param = "val"> 
       <sequential> 
        <echo>in sequential : @{line}</echo> 
         <var name="first.part" value="1"/> 
         <var name="second.part" value="2"/> 
         <var name="third.part" value="3"/> 
         <propertyregex 
          property="first.part" 
          input="@{line}" 
          select="\0"/> 
         <propertyregex 
          property="second.part" 
          input="@{line}" 
          select="\1"/> 
         <propertyregex 
          property="third.part" 
          input="@{line}" 
          select="\2"/> 
         <echo> after assign: 1st.part = ${first.part}</echo> 
         <echo> after assign: 2nd.part = ${second.part}</echo> 
         <echo> after assign: 3rd.part = ${third.part}</echo> 
      </sequential> 

</for> 

Но муравей 1,6 не поддерживает регулярные выражения, я получил ошибку: тип не поддерживает «регулярное выражение» атрибута.

как исправить? ??? Thanks

+1

ANT 1.6 был выпущен в 2003 году. ANT 1.7 заменил его в 2006 году и ввел значительные изменения. Я бы очень рекомендовал обновление –

ответ

1

ANT не является языком программирования. Вам лучше всего внедрить его.

В следующем примере используется groovy:

<project name="demo" default="scan"> 

    <target name="bootstrap"> 
     <mkdir dir="${user.home}/.ant/lib"/> 
     <get dest="${user.home}/.ant/lib/groovy.jar" src="http://search.maven.org/remotecontent?filepath=org/codehaus/groovy/groovy-all/2.1.3/groovy-all-2.1.3.jar"/> 
    </target> 

    <target name="scan"> 
     <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/> 
     <groovy> 
     new File("File1.txt").eachLine { 
      def values = it.split() 

      ant.echo "Extracted values: ${values}" 

      values.each { 
       ant.echo "Need to so something with ${it}" 
      } 
     } 
     </groovy> 
    </target> 

</project> 

производит следующий вывод

scan: 
    [echo] Extracted values: [aaa, bbb, ccc, ddd, eeee] 
    [echo] Need to so something with aaa 
    [echo] Need to so something with bbb 
    [echo] Need to so something with ccc 
    [echo] Need to so something with ddd 
    [echo] Need to so something with eeee 
    [echo] Extracted values: [a111, b111, c111, d111] 
    [echo] Need to so something with a111 
    [echo] Need to so something with b111 
    [echo] Need to so something with c111 
    [echo] Need to so something with d111 
    [echo] Extracted values: [A222, B222, X222, Y222, Z222] 
    [echo] Need to so something with A222 
    [echo] Need to so something with B222 
    [echo] Need to so something with X222 
    [echo] Need to so something with Y222 
    [echo] Need to so something with Z222 
    [echo] Extracted values: [FFF, GGG, HHH] 
    [echo] Need to so something with FFF 
    [echo] Need to so something with GGG 
    [echo] Need to so something with HHH 

Обновление

Альтернативный способ для того, чтобы заводная задача заключается в использовании ссылки пути к классам следующим образом:

<path id="build.path"> 
    <pathelement location="/path/to/groovy-all/jar/groovy-all-2.1.3.jar"/> 
</path> 

<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/> 
+0

Я загрузил groovy-all-2.1.3.jar и поместил в classpath. проверить код: C: \ муравей \ построить> муравей -f buildx.xml Buildfile: buildx.xml сканирования: BUILD FAILED C: \ муравей \ построить \ buildx.xml: 9: Не удалось создать задание или тип типа: groovy. Ant не мог найти задачу или класс, на который эта задача основана. Это обычное явление и имеет ряд причин; обычные решения должны читать страницы руководства, а затем загружать и устанавливать необходимые файлы JAR или исправлять файл сборки: – dateboyTom

+0

@dateboyTom Сначала запустить «bootstrap» target (ant bootstrap). Я создал эту цель, чтобы упростить настройку build для использования groovy. Посмотрите на код, то, что он делает, загружает паштет groovy и помещает его в место, которое будет доступно для следующего запуска ANT. (Что-то похожее на то, как вы включили задачу «для». Это требует стороннего файла ant-contib.jar, который по умолчанию не поставляется с ANT). –

+0

Я добавляю: \t \t \t \t \t \t \t \t \t \t \t \t \t \t в buildx.mail, беги, C: \ муравей \ построить> муравей запустить -f buildx.xml Buildfile: C: \ муравей \ build \ buildx.xml run: BUILD FAILED – dateboyTom

 Смежные вопросы

  • Нет связанных вопросов^_^