Несколько продолжение моих previous вопроса:Исключить определенный шаблон из матча Regex
я наткнулся на другой шаблон, который я должен был бы заботиться, который выглядит примерно так:
Tue 01/24/12 1/24/2012 2:56:25 PM
В этом случае я бы хотел, чтобы он соответствовал части 1/24/2012 2:56:25 PM
.
Мое предыдущее выражение похоже на приведенный выше ввод на 01/24/12 1
или что-то подобное.
Я был в состоянии сделать эту работу, по большей части, используя следующее выражение:
(?:\w\w\w (0?[1-9]|1[012])[- \/.](0?[1-9]|[12][0-9]|3[01])[- \/.](19|20)?\d\d)? (0?[1-9]|1[012])[- \/.](0?[1-9]|[12][0-9]|3[01])[- \/.](19|20)?\d\d((?: |\s*-\s*)(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)(AM| PM)?)?
Проблема здесь в том, что я не хочу, чтобы на самом деле включают Tue 01/24/12
бит в моем матче; Я хочу убедиться, что часть не соответствует. Я попытался использовать негативный взгляд вперед, добавив модификаторы ?!
к первой группе, не участвующей в захвате, но это не совсем так, как я думал.
Я попытался найти похожие вопросы here и here, но ответы ничего не объяснили; они просто предоставили рабочее выражение для этого конкретного экземпляра.
Пожалуйста, обратите внимание на протокол HTTPS : //regex101.com/r/tR0yT3/1, я думаю, вы также хотите записать '01/24/12' в своей строке ввода. –
Я пытаюсь записать только дату, начинающуюся со второй даты ('1/24/2012' в примере), потому что после ее захвата я конвертирую ее в объект .NET datetime. –
Да, но это отдельный матч. Посмотрите еще раз на https://regex101.com/r/tR0yT3/2 и совпадения. Вы используете C#? Отправьте свой код. –