2011-02-24 17 views
0

我需要從我的文本文件中刪除所有字符串,如:正則表達式:我目前的一個後所有單詞都不見了

flickr:user=32jdisffs 
flickr:user=acssd 
flickr:user=asddsa89 

我目前使用fields[i] = fields[i].replaceAll(" , flickr:user=.*", "");

但是這個問題處理方法是,將flickr:user=之後的任何單詞從內容中刪除,即使在空格之後。

感謝

+0

不清楚你的問題。請發佈您期望的前後示例。 – adarshr 2011-02-24 10:19:46

+0

有一個'g'的標誌,意思是'貪婪',並儘可能地代替它。也許這是默認啓用的。 – pimvdb 2011-02-24 10:21:35

+0

@pim非貪婪也無濟於事,因爲它不夠匹配 – 2011-02-24 10:23:22

回答

0

你可能需要

replaceAll("flickr:user=[0-9A-Za-z]+", "");

0

flickr:user=\w+應該這樣做:

String noFlickerIdsHere = stringWithIds.replaceAll("flickr:user=\\w+", ""); 

參考:

\w = A字字符:[a-zA-Z_0-9]

0

對這個問題去如說,有機會,你想:

fields[i] = fields[i].replaceAll(" , flickr:user=[^ ]* ", ""); // or " " 

這將匹配的字符串,其中包括user直到但不包括第一個空間的價值,其次是空間,並用空白字符串或單個空格替換它。 然而,這將(除了逗號)網你一個空的結果與你顯示的輸入。那真的是你想要的嗎?

我也不確定開始時的" , "適合您展示的示例。

原因你的困難是,一個無界的.*會匹配一切從該點,直到輸入的結束(即使等於什麼;那是什麼*是)。對於基於行的正則表達式解析器,這就是行的末尾。

相關問題