У меня есть следующая тестовая строка:
/// <exception cref="x"><paramref name="a"/> is null.</exception>
/// <exception cref="y"><paramref name="b"/> is null. -or-
/// </exception>dfjhhdfhdfkjhdkjdfhkdfjhdf -or-
Это строка из трех строк. Поэтому я создал регулярное выражение с флагом Singleline, чтобы захватывать новые строки с точкой. Мое регулярное выражение:
(<exception.+?>)(?<a>.+?)(?!<\/exception>)-or-
С этим регулярным выражением я ожидаю совпадения только со второй строкой. Но то, что я получаю (визуализируется с помощью regex101.com ):
![enter image description here](https://i.stack.imgur.com/K6rYV.png)
Первые две строки совпадают, а вторая группа включает </exception>
хотя я указал отрицательный прогноз (?!<\/exception>)
.
Почему это произошло? Как мне сопоставить вторую строку, полагаясь на наличие -or-
?