W pliku znajdują się następujące wiersze. Chciałbym wyodrębnić wiele danych z tego pliku.wyodrębnianie wartości z pliku za pomocą ant
Ilość bieżącego użytkownika budować listy: 23
- 'RevisionBuild' czas Run (w minutach) = 8,40
[Zbuduj] RC = 0
I Użyto następującego wyrażenia regularnego, aby pobrać wartość 23 z tego pliku
<ac:for param="line" list="${logFileContent}" delimiter="${line.separator}">
<sequential>
<propertyregex property="noOfBuildlists"
input="@{line}"
regexp="(.*)Number of current user build lists: (.*)$"
select="\2"/>
</sequential>
</ac:for>
Ale to samo wyrażenie nie pobiera żadnej wartości, gdy próbuję pobrać inne linie, takie jak regexp = "(. ) [revBuild] RC = (.) $”lub Regexp = "(. ) 'RevisionBuild' czas cyklu (w minutach) = (.) $", w którym wyekstrahowane wartości powinny wynosić 0 i 8,40, odpowiednio.
Czy ktoś mógłby pomóc? Dzięki, Aarthi
Dzięki za tonę. Działa to bardzo dobrze. Czy możesz wyjaśnić użycie \ s *. Zauważam, że używasz tego wyrażenia za każdym razem, gdy jest spacja, po której następuje znak specjalny (taki jak (lub) lub = – user1384205
'\ s' reprezentuje znak odstępu, a' \ s * 'oznacza zero lub więcej wystąpień dla białych znaków. sprawiają, że wyrażenie jest bardziej niezawodny i pasuje nawet jeśli jest więcej spacji lub jeśli nie ma ich wcale –
Jeszcze raz dziękuję Vaman.Więc, aby wyszukać ciąg "Czy ta lista kompilująca wymaga kompilacji: prawda", wypróbowałem następujące wyrażenie regularne Czy ta lista wymaga compile: \ s * ([rt] +) $ Jednak wyrażenie regularne nie działa – user1384205