регулярное выражение для сопоставления всего, что находится между двумя словами

Написание сценария TCL для сопоставления всего, что находится между двумя ключевыми словами.

Пример:

X509v3 Extended Key Usage:

1.2.3.4, 1.3.6.1.4.1.311.4, 1.1.1.1, 234.432.1.36.4564.345

55.55.55.55, 66.66.66.66, 1234.5443.123.321.12.332.231.1

X509v3 Subject Key Identifier:

Я хочу иметь возможность получать всю информацию между расширенным использованием ключа и идентификатором ключа субъекта.

1.2.3.4, 1.3.6.1.4.1.311.4, 1.1.1.1, 234.432.1.36.4564.345

55.55.55.55, 66.66.66.66, 1234.5443.123.321.12.332.231.1

Что я пробовал без успеха:

set content [regexp {(?=<Extended Key Usage)(?s)(.*)(?=X509)} $ext match]
.
set content [regexp {\y(Extended Key Usage)(.*)(X509)\y} $ext match]

person lawrence liu    schedule 01.11.2011    source источник
comment
Я пробовал это.. /Использование ключа:(.*)X509v3/ и, кажется, работает   -  person elboletaire    schedule 01.11.2011


Ответы (1)


regexp -linestop {Extended Key Usage:\s.*[\r\n]+((?:.|[\r\n])*?)(?=\s*X509v3 Subject Key Identifier:)} $subject regexmatch result

Попробуй это. Результат фиксируется в группе захвата 1. Lookbehind не поддерживается в TCL ARE http://wiki.tcl.tk/461

person FailedDev    schedule 01.11.2011