2010-08-27 29 views
2

我希望有人能夠幫助我。我需要創建一個正則表達式來刪除輸入文件中的所有重複項 - 我正在創建一個ftp.exe腳本來上傳文件,並且不希望重複執行命令。困難的正則表達式Javascript重複取代

這裏是腳本的一個簡單的例子:有可能高達20%或更多的文件相同的重複的......

我創建(括號中的不同部分)左右,並認爲它可能用於組

(mkdir /breeds 
    cd /breeds 
    mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/breeds/*.* 
    ) 
(mkdir /breeds 
    cd /breeds 
    mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/breeds/*.* 
    ) 
(cd/
    mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/*.* 
    ) 
(cd/
    mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/*.* 
    ) 

我該如何寫一個JavaScript的regex.match來規定重複值。

+0

好吧我已經做到了,它似乎工作我寫的(括號內)到MySQL數據庫之間的所有內容 - 然後再導入它再次用一組語句篩選出所有重複...不是最優雅和最快的方式,但它似乎工作 – 2010-09-10 13:59:38

回答

1

這樣做的一種方法是將每個「組」組合成一行(例如用分號分隔命令),然後使用unix | sort | uniq刪除重複的行,然後再將行重新分開。

+0

OP想在Javascript中做到這一點,它看起來不像他使用unix反正(「ftp.exe」) – 2010-08-27 19:42:23

+0

我正在想寫它到MySQL,然後按功能做一個組 - 但認爲正則表達式可能更容易,更快...... – 2010-08-27 19:42:26

+0

@Daniel好點。猜猜我應該更仔細地閱讀這個問題。儘管如此,還沒有js解決方案即將出現,有時使用你沒有想到的方法來解決問題會有所幫助。 – LarsH 2010-08-27 20:46:53

0

雖然識別文本中的重複對於人來說很容易,但對於正則表達式來說這是一個相當困難的任務(特別是因爲文本看起來可能是任何東西,並且沒有固定數量的行構成一個組)。

考慮:

mkdir /breeds 
cd /breeds 
mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/breeds/*.* 

mkdir /breeds 
cd /breeds 
mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/*.* 

這是否創建一個副本?前兩行是重複的還是整個組需要匹配(但在這種情況下,小組是如何確定的?)。

你不會找到一個正則表達式來完成你想在這裏做的事情。您需要根據您提供的一系列規則,找到一種方法來實際解析您的輸入。

例如,您可以將輸入拆分爲數組行,然後雙向遍歷該數組尋找等效行的組(儘管如此,您仍然需要確定一些規則,例如最小行數組成一個團體是)。

+0

很好的問題丹尼爾分手......正如我下面提到它可能會更容易將它寫入臨時到MySQL,然後做一個GROUP BY,然後刪除臨時文件?我正在使用asp – 2010-08-27 19:43:59

+0

「GROUP BY」,但是什麼? – 2010-08-27 20:07:30

+0

好的我已經做到了,它似乎工作我寫的(括號內)到MySQL數據庫之間的所有內容 - 然後再導入它與一組聲明過濾出所有重複...不是最優雅的和最快的方式,但它似乎工作 – 2010-08-27 20:21:49