Заменить все символы после первого номера блока - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть массив со строками, такими как COM1, COM22, COM3abc, COM4! "§", COM5656!и так далее.Теперь нужно заменить все символы после того, как произошел первый блок чисел, чтобы я получил: COM1, COM22, COM3, COM4, ​​COM5656.Я не очень знаком с регулярными выражениями, но я пробовал много разных регулярных выражений, таких как:

for (var i = 0; i < comPorts.Length; i++)
    comPorts[i] = Regex.Replace(comPorts[i], @"\D*(\d+)\D*", "$1");

Но это регулярное выражение также удаляет COM.

1 Ответ

0 голосов
/ 08 февраля 2019

Вы можете использовать

Regex.Replace(comPorts[i], @"(\d+).*", "$1")

См. Демонстрационный пример regex

Регулярное выражение (\d+).* будет сопоставлять и захватывать первый (крайний левый) текст из одной или нескольких цифрchunk, а затем .* захватит оставшуюся часть строки, а $1 заменит все совпадение захваченными цифрами.Обратите внимание, что вам нужно передать RegexOptions.Singleline в качестве последнего аргумента Regex.Replace, если строка может содержать более одной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...