Как я могу повторить с рисунком? - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь заменить некоторые слова пробелами через регулярные выражения. Например, у меня есть следующий код для замены слова "onerror=error=" пробелом.

String content = "ononerror=error=";
Pattern scriptPattern = Pattern.compile("onerror(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
content = scriptPattern.matcher(content).replaceAll("");

Если вы запустите код, как указано выше, останется только «onerror».

Но я хочу заменить его и заменить "onerror", который снова получился пробелом.

Другими словами, я хочу заменить "onerror" регулярным выражением и, наконец, оставитьтолько пробел.

Я не знаю, какое ключевое слово искать, поэтому я задаю вопрос. Пожалуйста, помогите мне.


Этот код переписан с использованием find (). Пожалуйста, обратите внимание.

Pattern scriptPattern = Pattern.compile("onerror(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
while (scriptPattern.matcher(content).find()) {
    content = scriptPattern.matcher(content).replaceAll("");
}

scriptPattern = Pattern.compile("onchange(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
while (scriptPattern.matcher(content).find()) {
    content = scriptPattern.matcher(content).replaceAll("");
}

scriptPattern = Pattern.compile("onclick(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
while (scriptPattern.matcher(content).find()) {
    content = scriptPattern.matcher(content).replaceAll("");
}

1 Ответ

0 голосов
/ 15 октября 2019

Цикл, использующий find(), мог бы добиться цели:

String content = "ononerror=error=";
Pattern scriptPattern = Pattern.compile("onerror(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
while (scriptPattern.matcher(content).find()) {
    content = scriptPattern.matcher(content).replaceAll("");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...