2012-03-21 50 views
3

對java和我來說,全新的東西一直在replaceAll命令中使用正則表達式,並且想知道我做過的方式是否是最好的方式? 我基本上想找到我的文件中的 <Letter_File TIMESTAMP="0000-00-00 00:00" FILECREATOR="XXX" BRAND_ID="0" BRAND_NAME="xxxxxxxxx"> 每一次出現,我使用與<Letter_File>替換以下內容:在java中取代REGEX

str1 = str1.replaceAll("\\<Letter\\_File[a-zA-Z\\_\\s\\=\\\"0-9-\\:\\\"]+\\>","<Letter_File>");>

什麼,我想知道,這是做功能的最佳途徑或者有沒有辦法可以縮短REGEX?

歡迎任何反饋意見。

感謝

+0

所以基本上你想更換標籤在您的XML文件中有標記正確嗎? – 2012-03-21 15:20:40

+0

是的正確我基本上想要從標籤中去掉所有的屬性,我知道這可能是一種非常不好的方式! – 2012-03-22 09:50:23

回答

3

如何:

str1 = str1.replaceAll("<Letter_File[^>]+>","<Letter_File>");> 
+0

感謝這工作得很好,只是出於好奇你能解釋這是如何工作的?我是否認爲[^>]會在?我認爲你必須加入它尋找的某些角色,爲什麼我把所有這些不同的變化例如a-zA-Z0-9等等 – 2012-03-22 09:59:46

+0

@ Simon.Knott86:'[^>]'表示任何不是'>'的字符。看看這個網站:http://www.regular-expressions.info/charclass.html – Toto 2012-03-22 10:34:22

+0

非常感謝我認爲這有助於很多,我不能肯定,因爲我的理解^字符也可以意味着「在開始「 – 2012-03-22 11:35:07