Что означает '(? I) пароль' в регулярном выражении Python?

Pexpect может использоваться для автоматизации 9X_pythonic задач в Python (не требует установки TCL). Одна 9X_regexes из простейших процедур этого класса - процедура 9X_py run(). Он принимает словарь ожидаемых шаблонов 9X_regular-expressions вопросов в качестве ключей и ответов в качестве 9X_regex значений. Например

pexpect.run ('scp foo 9X_regexp [email protected] :.', events = {'(? i) пароль': mypassword})

Обычно 9X_regular-expression я знаю это "?" используется для обозначения 9X_regularexpression 0 или 1 появления предыдущего литерала в 9X_perl-regex строке (для регулярных выражений). Однако 9X_python-shell здесь, похоже, не в этом смысл.

Могут ли 9X_regex эксперты прокомментировать, что это такое?

6
0
2
Общее количество ответов: 2

Ответ #1

Ответ на вопрос: Что означает '(? I) пароль' в регулярном выражении Python?

https://docs.python.org/library/re.html#regular-expression-syntax

(? ...) Это расширение обозначение ("?" после 9X_regexp "(" не имеет смысл в противном 9X_python случае). Первое символ после "?" определяет каков 9X_regular-expression смысл и дальнейший синтаксис конструкция 9X_py есть. Расширения обычно не создавайте 9X_python-interpreter новую группу; (? P ...) - единственное 9X_regularexpression исключение из это правило. Ниже приведены 9X_python-shell текущие поддерживаемые расширения.

(? iLmsux) (Одно 9X_pythonista или несколько писем от набор «i», «L», «m», «s», «u», «x».) Группа 9X_py соответствует пустой строке; буквы устанавливают 9X_regularexpression соответствующие флаги (re.I, re.L, re.M, re.S, re.U, re.X) ​​для 9X_regex-php всего регулярного выражение. Это полезно, если 9X_python-shell вы хотите включить флаги как часть регулярное 9X_regex-php выражение вместо передачи аргумент флага 9X_regular-expressions для compile() функция.

Обратите внимание, что 9X_regex флаг (? x) меняет способ выражение анализируется. Должен 9X_py быть используется первым в строке выражения, или 9X_python-interpreter после одного или нескольких пробелов символы. Если 9X_regexes есть непробельные символы перед флаг, результаты 9X_pythonic не определены.

Итак, в этом случае строка 9X_regular-expression является регулярным выражением и настроена 9X_python без учета регистра.

10
0

Ответ #2

Ответ на вопрос: Что означает '(? I) пароль' в регулярном выражении Python?

Это расширение синтаксиса регулярных выражений 9X_pythonic в модуле re Python. «I» означает «игнорировать 9X_python регистр». Это означает, что поиск «пароля» без 9X_pythonista учета регистра выполняется.

из https://docs.python.org/library/re.html#regular-expression-syntax

(? iLmsux) (Одна 9X_regularexpression или несколько букв из набора «i», «L», «m», «s», «u», «x».) группа 9X_regex соответствует пустой строке; в буквы устанавливают 9X_pythonic соответствующие флаги (re.I, re.L, re.M, re.S, re.U, re.X) для 9X_regular-expressions всего регулярного выражения. Это полезно, если 9X_regexes вы хотите включить флаги как часть регулярного выражение 9X_python-interpreter вместо передачи флага аргумент функции 9X_regex-php compile().

Обратите внимание, что флаг (? x) изменяет 9X_python способ анализа выражения. Это следует 9X_regex-php использовать первым в выражении строка 9X_pythonic или после одного или нескольких пробельные 9X_python символы. Если есть непробельные символы 9X_regexp перед флаг, результаты не определены.

5
0