^,$ Когда использовать этот символ в регулярных выражениях?
Owner
Owner: ABC
Address: XYZ
Information
Это шаблон, который я пытаюсь сопоставить. Я хочу сопоставить детали между владельцем и информацией, но исключая заголовки, используя регулярное выражение, как,
(?<=(\s*Owner))(.|\n)*?(?=\s*Information)
Когда я пытаюсь добавить ^
а также $
чтобы быть более точным, это не соответствует.
(?<=(/^\s*Owner))(.|\n)*?(?=\s*Information/$)
Не могли бы вы помочь мне в этом?
1 ответ
Вы не даете достаточно деталей. Поскольку ваше первое выражение работает, я предполагаю, что вы используете Singleline
Режим.
Мое следующее предположение, эта строка является лишь частью большей строки.
^
соответствует началу строки по умолчанию
$
соответствует концу строки по умолчанию.
Теперь, так как ваша строка содержит вещи до и вперед, вам нужно изменить это поведение по умолчанию:
С модификатором Multiline
, ^
соответствует началу строки и $
конец ряда. Смотрите документацию для более подробной информации.
Итак, ваше регулярное выражение должно выглядеть примерно так:
Regex regx = new Regex("(?<=^(\s*Owner))(.|\n)*?(?=\s*Information$)", RegexOptions.Singleline | RegexOptions.Multiline);