2012-03-21 3 views
3

Полностью новый для java, и я играл с регулярным выражением в команде replaceAll и задавался вопросом, лучший ли способ, которым я это сделал? Я в основном хотел, чтобы найти все вхождения <Letter_File TIMESTAMP="0000-00-00 00:00" FILECREATOR="XXX" BRAND_ID="0" BRAND_NAME="xxxxxxxxx"> в мой файл и заменить его <Letter_File> я использую следующее:replaceall REGEX в java

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

, что я хотел бы знать, это лучший способ сделать функцию или существует ли способ сократить REGEX?

Любая обратная связь более чем приветствуется.

Благодаря

+0

так в основном вы пытаетесь заменить тег с тегом в вашем XML-файле? –

+0

yes correct Я в основном хочу удалить все атрибуты из тега , я знаю, что это, вероятно, очень нубийский способ сделать это! –

ответ

3

Как насчет:

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

Спасибо, это прекрасно работает, просто из любопытства вы могли бы объяснить, как это работает? правильно ли я предполагаю, что [^>] будет искать что-либо после ? Я думал, что вам нужно было указать определенные персонажи, которые он искал, поэтому я поместил все эти разные варианты, например. a-zA-Z0-9 и т. д. и т. д. –

+0

@ Simon.Knott86: '[^>]' означает любой символ, который не является '>'. Посмотрите на этот сайт: http://www.regular-expressions.info/charclass.html – Toto

+0

спасибо большое, я думаю, что помогает много, я не был уверен, что символ^к моему пониманию также может означать «в начале " –

Смежные вопросы