Мне нужно найти соответствующий результат, т.е. строку, используя Regex. Позвольте мне продемонстрировать сценарий, используя примеры входных данных.
string input= "xb-cv_107_20190608_032214_006"; // <-1st case
string input = "yb-ha_107_20190608_032214_006__foobar"; // <-2nd case
string input= "fv_vgf_ka01mq3286__20190426_084135_039"; // <-3rd case
string input="fv_vgf_ka01mq3286__2090426_084135_039"; //<-4th case
Для ввода в первом случае требуется вывод = "xb-cv_107_20190608_032214_006". Для ввода второго случая требуется вывод = "yb-ha_107_20190608_032214_006". Для ввода в третьем случае требуется вывод = "fv_vgf_ka01mq3286__20190426_084135_039". Для ввода в 4-м случае вывод required = null, поскольку шаблон не совпадает.
Процедура получения выходных данных:
- Проверьте, используя регулярное выражение, если шаблон заканчивается на
_
, за которым следуют 8 десятичных знаков, затем '_', затем 6 десятичных знаков и 3 десятичных знака - Или проверьте с помощью регулярных выражений, что шаблон заканчивается на
_
, за которым следуют 8 десятичных знаков, затем _
, за которыми следуют 6 десятичных знаков, за которыми следуют 3 десятичных знака, за которыми следует __
, за которыми следует что-либо случайное.
До сих пор я придумал выражение Regex:
string pattern = @".+[_][0-9]{8}[_][0-9]{6}[_][0-9]{3}([_]{2})?";
var result = Regex.Match(input, pattern)?.Groups[0].Value ;