Я буду первым, кто признает, что я не лучший писатель-регекс. Я пытаюсь проанализировать файлы журнала в powershell. Файлы журнала начинаются с отметки времени даты и могут быть многострочными. Примером может служить следующее:Регулярное выражение lookahead в powershell ведет себя странно
2017-01-10T17:52:24.224-05:00 DEBUG (0EC3-018C) < ThisIsAClassName> [blah] log lines are here
this is an addition to the previous line
So is this at 2017-01
2017-01-10T17:52:26.224-05:00 DEBUG (0EC3-018C) < ThisIsADiffClassName> [blah] log lines are here
Моя регулярное выражение выглядит следующим образом
Timestamp = "\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}"
Anything = "[.|\w]"
NegativeLookahead = "(?!(" + Timestamp + "))"
FullRegex = Timestamp + Anything + NegativeLookahead
Это дает мне точно вход. Что я делаю неправильно, чтобы разделить строки по меткам времени?
Нужно ли * совместить *? Вы можете разделить на '' (? M)^(? = "+ Timestamp +") "' –
'[. | \ W]' выглядит неправильно, оно не соответствует «ничего», оно соответствует только символам слов, буквальным символ точки, символ буквальной трубы. – wOxxOm
И только одно вхождение этого. –