VB.NET — Найдите символ, за которым следует точка, и удалите точки

#string #vb.net #character

#строка #vb.net #символ

Вопрос:

В VB.NET можете ли вы помочь мне понять, как преобразовать символ с точкой (или любой аббревиатурой)

В приведенных ниже 4 примерах при вводе строк будет получена первая буква, и если есть сокращение, оно удалит точки, но получит все буквы. Спасибо!

Смотрите примеры ниже:

Введите в текстовое поле:

Переполнение стека

S. Stack P.S

A.B.C Переполнение стека Z.

Стек Z.

Вывод:

SSPSO

SSP

ABCSOZ

SZ

Использование: ?

Комментарии:

1. Пожалуйста, покажите код, который вы используете для этого. В противном случае вам очень сложно помочь.

Ответ №1:

Регулярные выражения, похоже, соответствуют вашим потребностям:

 Dim r = Regex.Replace("A.B.C Stack Overflow Z.", "[^A-Z]", "") 

MsgBox(r) 'shows ABCSOZ
  

Это "[^A-Z]" сопоставитель шаблонов, означающий «любой символ, не входящий в диапазон от А до Я»

Это означает, что все символы, которые не являются прописными буквами ASCII, заменяются пустой строкой

Комментарии:

1. Или что-то вроде: string.Concat([Line of Text].Where(c => char.IsUpper(c))) , чтобы оно включало символы, такие как Ȗ Å Ğ , например, и т.д. (если только они также не должны быть исключены, то есть).

2. Действительно, существует много способов скинуть эту кошку; в указанном вопросе символы с ударением, похоже, не рассматриваются.. Опять же, спецификация, указанная в вопросе, не согласуется с названием!

3. Спасибо @CaiusJard Я попробую и спасибо всем за проверку