Вставьте \ u2265 в строку C # - PullRequest
       8

Вставьте \ u2265 в строку C #

0 голосов
/ 13 декабря 2018

У меня есть источник данных, который содержит \u2265, то есть знак большего или равного, представленный в виде одного символа, например:

Однако, когда данные достигают моего приложения, они поступают вкак \\u2265.

Меня сейчас не интересует, почему происходит дополнительная \.

Вместо этого я просто хочу иметь возможность преобразовать \\u2265 в \u2265 внутри моего приложения.

Я пробовал различные манипуляции со строками, подобные этим, и у них либо были проблемы с синтаксисом, либо они просто не работали:

disp = dataSource.Replace('\\', '\');  
disp = dataSource.Replace("\\", "\");

и

int x = dataSource.IndexOf("\\u");
disp = dataSource.Substring(0, x) + dataSource.Substring(x+1);

Отчасти проблема с техникой подстроки заключается в том, что \\ рассматривается как один символ.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Другой вариант более общего использования (но не всегда применимый, он может мешать содержимому строки) состоит в том, чтобы удалить строку, используя Regex.Unescape () :

string myString = "\\u2265" + "20180426";
myString = Regex.Unescape(myString);

напечатает

≥20180426
0 голосов
/ 13 декабря 2018

Проблема в том, что ваш источник данных имеет \u2265 как string и не обрабатывает его как char.Если вы замените версию string версией char, вы получите то, что вам нужно.

data = data.Replace("\\u2265", '\u2265'.ToString());

Причина ToString() в том, что мы можем использовать соответствующую перегрузку для Replace.

Более простая версия, предоставленная @ Flydog57:

data = data.Replace("\\u2265", "\u2265");

Общая версия, вдохновленная @Jimi:

Regex r = new Regex(@"\\u[0-9]{4}");
var matches = r.Matches(data);
var uniqueMatches = matches
      .OfType<Match>()
      .Select(m => m.Value)
      .Distinct();

foreach (var m in uniqueMatches)
{
  data = data.Replace(m,Regex.Unescape(m));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...