#java #regex
#java #регулярное выражение
Вопрос:
Мне нужно регулярное выражение для моей замены, которое удаляет все между 2 строками и самими строками.
Например, если бы у меня было что-то вроде.
stackoverflow is really awesome/nremove123/n I love it
Я пытался выполнить замену, подобную этой строке.replaceAll(«/ n * / n», «»); Это должно привести к
stackoverflow is really awesome I love it
Я думал, что звездочка означает что угодно, но не может заставить ее работать?
приветствия
Ответ №1:
Нет, .
означает любой символ. *
означает любое количество предыдущих вещей. Так что все есть .*
. Что вам нужно, так это
/n.*/n
Если вы хотите оставить пустое пространство между словами, используйте это вместо
replaceAll("/n.*/n *", " ")
Комментарии:
1. Спасибо. Однако это не работает
stackoverflow is really awesome/nremove123/nI love it
. ГдеI
находится рядом с/n
2. Что вы имеете в виду, говоря, что это не работает? Вы имеете в виду, что оно не добавляет пробел между /n и I ? Если вы заменяете что-то пустой строкой («»), это не может добавить дополнительные пробелы, вместо этого просто помещается пустая строка
3. Результат, который я получаю, заключается
stackoverflow is really awesome/nremove123/nI love it
в том, что мне нужно, чтобы он работал без пробелов. Приветствия4. @Decrypter — возможно, стоит немного поэкспериментировать (в вашем случае).
Ответ №2:
Я думаю, вам нужна точка:
replaceAll(«/n.*/n»)
Ответ №3:
Это удалит все, что находится между ab
ними.
replaceAll("ab([;sw"=,:./~{}?!-%amp;#$^()]*?)ab","");
Пожалуйста, добавьте любой специальный символ, если я его пропускаю.