Замените & или несколько &, используя регулярное выражение

Если бы я мог использовать только один усилитель

value = value.Replace("&","&")

но, судя по данным, у некоторых есть «усилитель» и многое другое.

Почему он декодируется с несколькими усилителями, когда исходный текст состоит только из одного «&»?

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

Большое спасибо тем, кто поможет :) Спасибо


person user2450064    schedule 10.01.2014    source источник
comment
Подобные проблемы возникают в средах, где кодирование и декодирование HTML не сбалансированы. По-видимому, все еще есть люди, которые не видят, что HTML-кодирование не идемпотентно, и полагают, что лучше кодировать/декодировать один раз слишком много, чем один раз слишком мало. Эта ситуация заставила вас потерять след; теперь нет способа узнать, было ли это предполагаемое сообщение или просто кодировка.   -  person Ruud Helderman    schedule 10.01.2014
comment
Вы правильно сказали, что текст похож на &amp, а не на &? Если это так, то для группы amp; есть только одно совпадение, что объясняет ваши результаты. Если нет, отредактируйте свой вопрос, чтобы он был более точным.   -  person Brian Stephens    schedule 10.01.2014
comment
да, я пропустил данные, пытаясь воссоздать их в более низкой среде, это amp; Спасибо! и извините за сумбур!   -  person user2450064    schedule 10.01.2014


Ответы (1)


Вы можете попробовать поискать:

&(amp;)+

so:

value = value.Replace("&(amp;)+","&")
person hsz    schedule 10.01.2014
comment
Я использовал stripped = Regex.Replace(HTMLToStrip, &(amp;)+, &), но в итоге заменяет только первое странное! - person user2450064; 10.01.2014