Замена 'и подобных тегов в Java - PullRequest
3 голосов
/ 02 января 2012

Я хочу удалить теги, похожие на & apos; и & lt;

 pattern=Pattern.compile("'");
 match=pattern.matcher(line);
 match.replaceAll("");

Но это не работает. Я также попробовал:

line=line.replace("&","");
line=line.replace("apos","");
line=line.replace(";","");

Но на этот раз он заменяет только; разделитель, а не & и апос ....

Ответы [ 3 ]

2 голосов
/ 02 января 2012

Вместо использования регулярного выражения StringEscapeUtils из Apache http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringEscapeUtils.html весьма удобно для многих подобных целей

1 голос
/ 02 января 2012

, потому что это недопустимое регулярное выражение. допустимое регулярное выражение должно иметь следующее-

один знак «&» в начале, любой текст не числовой и заканчивается знаком «;» знак. Нечто подобное (не точно -

/ (&) ([A-Z] [A-Z]) + (;) / * * 1005

С Новым годом.

1 голос
/ 02 января 2012

Вы должны попробовать следующее регулярное выражение, чтобы удалить следующие шаблоны: <, >, ' &:

Pattern pattern = Pattern.compile("&(lt;|apos;|gt;|)");

ИСПЫТАНИЯ:

Matcher m = pattern.matcher("abc &def ' xyz< > mno");
System.out.printf("line=[%s]\n", m.replaceAll(""));

ВЫВОД:

line=[abc def  xyz  mno]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...