Рейтинг:
1
Maciej Los
Вы можете использовать Регулярное выражение[^]:
Dim lines As String()= New String(){"789-12123434LHRMUC/",
"78Z-1R123434LHRMUC/", "A89-12123434LHRM1C/", "989-12853434LHRMOU/",
"789-12123434LHRMUC/T1K71MC1.06/CONSOLIDATION/PILCRT"}
Dim pattern As String = "^\d{3}-\d{8}\w{6}/"
Dim r As Regex = New Regex(pattern)
Dim result = lines.Where(Function(x) r.Match(x).Success) _
.Select(Function(x) New With { _
.line = x, _
.match = r.Match(x).Value, _
.remaining = x.Replace(r.Match(x).Value,"")}) _
.ToArray()
string[] lines = new string[]{"789-12123434LHRMUC/",
"78Z-1R123434LHRMUC/", "A89-12123434LHRM1C/", "989-12853434LHRMOU/",
"789-12123434LHRMUC/T1K71MC1.06/CONSOLIDATION/PILCRT"};
string pattern = @"^\d{3}-\d{8}\w{6}/";
Regex r = new Regex(pattern);
var result = lines.Where(x=>r.Match(x).Success)
.Select(x=>new{
line = x,
match = r.Match(x).Value,
remaining = x.Replace(r.Match(x).Value,"")})
.ToArray();
Для получения более подробной информации, пожалуйста, смотрите:
Язык Регулярных Выражений - Краткий Справочник | Microsoft Docs[
^]
Maciej Los
Взгляните на мой рисунок. Она отличается от вашей.
Member 13703964
я попробовал твой код внутри http://regexstorm.net/tester
но это не работает, если я ставлю то же самое, поэтому я попытался изменить свой код
@"^\d{3}-\d{8}\w{6}/$";
не могли бы вы мне посоветовать, пожалуйста.
Maciej Los
На том же сайте я уже пробовал этот паттерн: ^\d{3}-\d{8}\w{6}/
и это прекрасно работает. Вы должны прочитать о классе регулярных выражений, чтобы узнать, что означает каждая часть выражения. Для получения более подробной информации, пожалуйста, смотрите: Язык Регулярных Выражений - Краткая Справка.
Member 13703964
большое спасибо за ваши отзывы. теперь я планирую поставить это в vb.net форма.
в моей форме есть 2 Richtextboxes и одна командная кнопка.
Richtextbox1 (sourcedata) Richtextbox2 (Result) любая идея, как написать код под командной кнопкой, чтобы показать результат в Richtextbox2.
Maciej Los
Подумай об этом! Вам нужно получить строки RichTextBox1 в переменную, а затем получить только совпадающие строки и поместить их в другой элемент управления RichTextBox.
Смотрите обновленный ответ для vb.net код.
[РЕДАКТИРОВАТЬ]
Dim lines As String() = RichTextBox1.Lines
Dim result As String() = ....
RichTextBox2.Lines = result
Member 13703964
Привет пробовал, но не работает, можете ли вы проверить, нужно ли что-нибудь добавить с моим кодом
Система Импорта.Текст.RegularExpressions
Общественного Класса Form1
Дим строка как строка() = richtextbox1 отображение.Линии
Дим регулярное выражение = новое регулярное выражение ("выражение\D{3}-\Д{8} и\W{6}/")
Dim match = регулярное выражение.Матч(линия)
Private Sub Button1_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button1.Щелчок
Если совпадут.Тогда Успех
RichTextBox2=(совпадение.Ценность)
Конец, Если
Конец Подводной Лодки
End Класса
Maciej Los
Дорогая, это твоя работа, а не моя. Я предоставил полный образец. Совет: Взгляните на мой ответ, чтобы узнать, как выполнить переменную [result].
Dim lines As String() = RichTextBox1.Lines
Dim result As String() = [paste the code from my answer here!]
RichTextBox2.Lines = result
Что еще вам нужно?
Не ленитесь!
Member 13703964
Привет дорогой, честно говоря, я не ленивый человек, я знаю только приложения ms office. Я учусь vb.net начиная с 1 месяца через youtube и я сделал несколько приложений win для работы, связанной с vb.net я все еще нахожусь на стадии обучения, поэтому короткие ответы не щелкают в моем уме. спасибо, что дали блок-схему. я буду продолжать учиться.