2015-04-16 134 views
3

我有一個CSV文件卸下包含特定單詞CSV行特定的詞

防爆出口meta關鍵字:

For Rent ABC-1234 , For Rent ABC-1234 Rental, For Rent ABC1234 , For Rent ABC1234 Rental, For Rent ABC 1234 , For Rent ABC 1234 Rental, For Lease ABC-1234 , For Lease ABC-1234 Rental, For Lease ABC1234 , For Lease ABC1234 Rental, For Lease ABC 1234 , For Lease ABC 1234 Rental 

我想要做的是,上面寫着「出租值XXX租賃「,從這些值中刪除」出租「,以便餘下的值僅爲」XXX租賃「。

這可能與正則表達式有關嗎?

+0

您使用的是什麼工具;換句話說哪個Regex實現? – OmegaMan

+0

那麼,我只是在試圖弄清楚它在Notepad ++中玩耍。我發現你可以在excel中使用VB來做同樣的事情。 – user3009360

回答

2

您可以使用此正則表達式中查找內容領域:

For Rent ([^,]+ Rental) 

$1 

[^,]意味着「任何字符,但逗號,+替換 - 1次或更多次我看見。這些值是逗號分隔的,所以這似乎是一種安全模式。爲了更安全的匹配,您可以嘗試For Rent ([^,]*? +Rental)中的找到字段(這也將佔據Rental之前的多個空間)。

輸出:

For Rent ABC-1234 , ABC-1234 Rental, For Rent ABC1234 , ABC1234 Rental, For Rent ABC 1234 , ABC 1234 Rental, For Lease ABC-1234 , For Lease ABC-1234 Rental, For Lease ABC1234 , For Lease ABC1234 Rental, For Lease ABC 1234 , For Lease ABC 1234 Rental 

enter image description here

+0

看起來很完美,我今天離開了工作,明天就會測試出來,並且upvote。謝謝! – user3009360

+0

慢慢來! :) –

0

我想這是你想要什麼:

(A[^,]+\d Rental) 

這將挑選出 「XXX租賃」,從 「出租/租賃XXX租賃」 ,而且你不需要更換任何東西。

編輯:

上述工程如果i(不區分大小寫)標記未被打開。

對於不區分大小寫的正則表達式,而不是使用以下:

(?<=\w{4}\s|\w{5}\s)([^,]+\d Rental) 
  • (?<=\w{4}\s|\w{5}\s)是後面匹配串,接着\w{4}\s(租)或\w{5}\s(租賃)圖案的正面外觀。

For \w+ \K([^,]+\d Rental) 
  • \K丟棄以前所有的比賽,並開始從當前位置匹配。
+0

這對我不起作用。它改變了行: 「租賃xxx租賃」,「對於樂」, – user3009360

+0

你有沒有不區分大小寫的標誌'我'?如果是這樣,我的解決方案會有問題,請嘗試'(?<= \ w {4} \ s | \ w {5} \ s)([^,] + \ d Rental)'。 –