2013-05-25 3 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 

파일 모두 AAA BBB CCC DDD EEE 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 빌드 파일 : buildx.xml 스캔 : 이 빌드가 실패 C : \ 개미 \ 구축 \ buildx.xml : 9 : 작업을 생성 할 수 없습니다 또는 유형의 유형 : 그루비. Ant는이 태스크가 의존하는 태스크 또는 클래스를 찾을 수 없습니다. 이것은 일반적이며 여러 가지 원인이 있습니다. 보통 해결책은 설명서 페이지를 읽고 나서 필요한 JAR 파일을 설치하거나 빌드 파일을 수정하는 것입니다. – dateboyTom

+0

@dateboyTom "부트 스트랩"대상을 먼저 실행합니다 (ant 부트 스트랩). Groovy를 사용하도록 빌드를 쉽게 구성 할 수 있도록이 목표를 만들었습니다. 코드를 살펴보면 그루비 병을 다운로드하고 ANT의 다음 실행에 액세스 할 수있는 위치에 배치하는 것입니다. ("for"작업을 활성화 한 것과 비슷한 점은 기본적으로 ANT와 함께 제공되지 않는 타사 ant-contib.jar 파일이 필요함). –

+0

다음을 추가합니다 : \t \t \t \t \t \t \t \t \t \t \t \t \t \t, C : \ 개미 \ 구축> buildx.xml -f 개미 실행 위해 빌드 파일 : C : \ 개미 \ build \ buildx.xml 실행 : BUILD FAILED – dateboyTom