Как проверить, содержит ли строка неразрывный пробел?
Мне нужно проверить, содержит ли строка неразрывный пробел, символ, представленный
который выглядит как обычное пространство, но отличается.
В следующей попытке subject
будет содержать что-то вроде "Hey 3", где пробел между "Hey" и "3" является неразрывным пробелом:
if (date != "" && from != "" && subject.ToLower().Contains("hey "))
{
...
}
Этот код не работает, так как я хочу соответствовать реальному символу Unicode, а не буквально "& nbsp".
Как я могу проверить, если мой subject
строка содержит неразрывный пробел?
2 ответа
NBSP выступает за неразрывное пространство. В отличие от традиционного космического символа, два или более последовательных NBSP не сводятся к одному.
HTML-сущность
на самом деле переводится в Unicode символ с кодом 00A0
, В C# вы можете написать это так: \u00A0
,
Таким образом, строка для поиска становится "hey\\u00A0"
,
Использование функции литеральных строк языка C#. вышеуказанная строка может быть записана как @"hey\u00A0"
,
Вы можете ввести этот символ содержит
"hey 3".ToLower().Contains("hey\u00A0")
В котором "эй 3" на самом деле "эй \u00A03"