Регулярное выражение Javascript для соответствия всем символам & в тексте, игнорируя такие кодировки, как & # 41 ;, & nbsp; и т.д

1

Моему требованию дается строка вроде этого,

Edit the Expression    &1   Text to  & se&e matches ). Roll & over    ma&tches & or t

Мне нужно выбрать все символы '&', игнорируя их в кодировке. Я добился выбора всех символов кодирования. Вот демонстрация. Теперь мне нужно игнорировать их, чтобы выбрать другие "&".

Теги:
regex-negation
regex-lookarounds

1 ответ

0

Ваше регулярное выражение может считаться незавершенным, например, для соответствия & вы также можете написать свое текущее регулярное выражение как &(?:#x?)?(?:\d{2}|\w{4}); , Чтобы обобщить его немного, вы можете даже изменить его на /&(?:#x?)?\w{1,4};/.

Ваш вопрос заключается в том, чтобы свести на нет этих объектов, и соответствовать & во всех других местах. Легко достичь группы захвата и немного кода.

var s = "Edit the Expression    &   Text to  & see matches ). Roll & over    ma&tches & or the expression for details. Undo mistakes with ctrl-z. Save Favorites & Share expressions with friends or the Community. Explore & your results with & Tools. A full & Reference & Help is ava&ilable in & the Library, or watch the video Tutorial. & or & or &";
var re = /(&(?:#x?)?\w{1,4};)|&/g;
var result = s.replace(re, function($0,$1) {return $1 ? $1 : "&";});
console.log(result);

Здесь шаблон равен /(&(?:#x?)?\w{1,4};)|&/g - (<YOUR_NEGATED_PATTERN>)|&. Ваш шаблон захватывается в группу 1, и когда совпадение найдено, проверяется значение группы 1: если группа 1 соответствует, объект возвращается в результирующую строку. Все остальные & превращены в &amp; ,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню