2014-03-31 71 views
0

我必須在java.I中做一些文件處理(從文件中檢索一些值並返回它)可以很容易地在Perl中執行此操作。我寫了一個perl腳本,但我無法運行它java文件。java中的Perl處理

任何人都可以請我幫助我如何運行它,或者如果我可以單獨在java中執行此操作。

它調用perl腳本我的Java代碼:

while ((output = responseBuffer.readLine()) != null) { 

    if(output.contains(hidden_tag)){ 
     String toRun = "perl PatternSearch.pl "+ output; 
     Process p = Runtime.getRuntime().exec(toRun); 
    } 
} 
+1

什麼是Perl腳本?你在Java中嘗試過什麼? (我們需要資源來分析和回答你的問題)。 – Astrobleme

+1

你爲什麼需要這個? –

+0

什麼價值,它是如何檢索?如果是正則表達式,它在幾行上匹配嗎? etc等 – fge

回答

0

不知道你的意思是在這裏,但如果「值來檢索」是使用正則表達式做,我剛纔completed a project允許對大量使用正則表達式文本文件(最多2吉布約,由於int極限CharSequence的):

private static final LargeTextFactory FACTORY 
    = LargeTextFactory.defaultFactory(); 

public List<String> getMatchesForPattern(final Path file, final String re) 
    throws IOException 
{ 
    final Pattern p = Pattern.compile(re); 
    final List<String> ret = new ArrayList<>(); 

    try (
     final LargeText text = FACTORY.fromPath(file); 
    ) { 
     final Matcher m = p.matcher(text); 
     while (m.find()) 
      ret.add(m.group()); 
     return ret; 
    } 
} 

無需再使用perl的;)除非你用perl特定的正則表達式的功能,當然


最後說明:如果您的輸入是結構化的,即HTML輸入等,您最好使用專用庫;對於HTML,這將是jsoup例如。

+0

Java有許多的正則表達式的不足。 – sln

+0

@sin引用一個......就我而言,他們工作得很好。當然,它們不是像perl – fge

+0

這樣的語言的內置部分,我會設置[perl腳本爲CGI](http://perldoc.perl.org/CGI.html)並使用[Apache HTTPClient] (http://hc.apache.org/)作爲Web服務。如果您需要進一步的幫助,請發佈您的代碼,我很樂意將其擴展爲答案。 – hd1