C # Заменить и удалить текст

Я считаю, что нашел соответствующий элемент стандартного. В §14.8.2p7 говорится:

Подстановка происходит во всех типах и выражениях, которые используются в типе функции и в объявлениях параметров шаблона.

blockquote>

Поскольку EnableIf> используется в объявлении параметра шаблона, должна произойти замена, и это ошибка в clang .

0
задан Dmitry Bychenko 13 July 2018 в 10:31
поделиться

2 ответа

Попробуйте использовать регулярные выражения : сопоставляйте группы и представляйте их по желанию:

  using System.Text.RegularExpressions;

  ...

  string source = "Users online: 479  browsing: 153 pages";

  // match.Groups["text"]   - "Users online: "
  // match.Groups["number"] - "479"
  var match = Regex.Match(source, "^(?<text>.*?)(?<number>[0-9]+)");

  // Users online: (479)
  label1.Text = $"{match.Groups["text"].Value.Trim()} ({match.Groups["number"].Value})";

Изменить: шаблон регулярного выражения ^(?<text>.*?)(?<number>[0-9]+):

 ^               - anchor: string's beginning
 (?<text> ...)   - group named "text" which contains
 .*?             - any characters, as few as possible
 (?<number> ...) - group named "number" which contains
 [0-9]+          - digits (char in [0..9] range); "+" - at least one    
1
ответ дан Dmitry Bychenko 17 August 2018 в 13:17
поделиться
  • 1
    Этот код работает. Но я понятия не имею о RegularExpressions. Могу ли я спросить, что «^ (? & Lt; text & gt;.??) (& Lt; число & gt; [0-9] +) & quot; означает? – Eddga 13 July 2018 в 09:28
  • 2
    @Eddga: Я отредактировал свой ответ (добавлено описание шаблона); для дальнейшего чтения о регулярных выражениях: docs.microsoft.com/en-us/dotnet/standard/base-types/… – Dmitry Bychenko 13 July 2018 в 09:41
  • 3
    Большое спасибо. – Eddga 13 July 2018 в 09:43
  • 4
    @Eddga: проверьте шаблон: "^(?<text>.*?)(?<number>[0-9]+)": кажется, что вы пропустили последний +. Если это не поможет, укажите код – Dmitry Bychenko 13 July 2018 в 13:59

Вы можете попробовать использовать подстроку. Что-то вроде этого:

 var x = //get the text

 var textToDisplay = x.Substring(0, x.IndexOf("b"); 

 Label1.Text = textToDisplay; 
0
ответ дан Alice 17 August 2018 в 13:17
поделиться
  • 1
    Этот ответ тоже работает. Но если у них больше User Online b ..... 10. его удалит все b .... для продолжения. Поэтому я считаю, что это слишком специфично. Но спасибо за помощь. – Eddga 13 July 2018 в 09:32
Другие вопросы по тегам:

Похожие вопросы: