Я ОЧЕНЬ новичок в регулярном выражении и не могу довести мою голову до конца.Как извлечь номер, разделенный запятой, из строки
Я пытаюсь написать два регулярных выражения - вам нужно будет сказать мне, возможны ли они. Оба они основаны на синтаксисе VB.net.
Regex 1: Строка Я тестирую против - Размер на диске: 25754900936 байт
Он имеет несколько ведущих пространств, но текст всегда одинаков. Я пытаюсь извлечь только номер (25 754 900 936).
Я пробовал несколько регулярных выражений, но я не могу получить все на одной линии. Запятые меня перепутали и вернули несколько совпадений (например, \ d + \ W + дает мне четыре совпадения, по одному для каждого набора чисел, разделенных запятыми).
Лучшее, что я сделал, это [0-9/,] *, но это дает мне 25 пустых совпадений и одно совпадение (по совпадению 19) от числа. Мне нужно это для того чтобы сопрягать на спичке 1.
Doable? Видеть регулярное выражение, где я могу извлечь такое число из строки, было бы очень полезно.
Regex 2:
Такая же идея, но теперь многострочная.
Строка Я тестирую против -
0 File(s) 0 bytes
1 File(s) 11,546 bytes
1 File(s) 259,584 bytes
3 File(s) 5,682 bytes
17218 File(s) 25,705,262,230 bytes
мне нужно только общее число байтов на этой последней строке (25,705,262,230). Можно ли это сделать в многострочном поиске? То же самое дело - текст всегда один и тот же.
James - оба действительно работали, но я на самом деле не использую это в .net. Я использую стороннее приложение, которое может выполнять регулярные выражения. К сожалению, он может работать только с первым захватом первой группы. В любом случае во втором регулярном выражении вы попадете в эту позицию? Сейчас он по-прежнему имеет слово «байты» в первом первом захвате первой группы, но в остальном он совершенен. – Pat
@Pat А я не вижу никаких забот. Вам нужно добавить положительный результат, чтобы конец строки («байты», которые вы не хотите захватывать) не будет включен. Я изменил второе регулярное выражение выше. Дайте мне знать, если это сработает - я извлек совпадающее значение (без байтов) просто с помощью 'regex.Match ([ваша строка]). Value' –
Perfect - спасибо! – Pat