В вашем редактировании вы упоминаете нежелательное начальное пространство в результате ... чтобы проверить состояние ведущего или конечного состояния вместе с вашим регулярным выражением, не включив его в результат, вы можете использовать функцию поиска регулярных выражений.
new Regex(@"(?<=Date )(HH)?:?(MM)?:?(ss)?")
(? & lt; = ...) является шаблоном lookbehind.
Исходный сайт Regex с этим примером.
редактирование для ввода Date HH:MM:ss
будет соответствуют как регулярному выражению (с или без lookbehind). но вход FooBar HH:MM:ss
будет по-прежнему соответствовать простому регулярному выражению, но lookbehinde здесь не сработает. Lookaround не изменяет содержимое результата, но предотвращает ложные совпадения (например, этот второй вход, который не является Датой)
, найдите дополнительную информацию о регулярном выражении и lookaround здесь