^,$ Когда использовать этот символ в регулярных выражениях?

    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);
Другие вопросы по тегам