Что означает '(? 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 эксперты прокомментировать, что это такое?
Ответ #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 без учета регистра.
Ответ #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 перед флаг, результаты не определены.
-
3
-
12
-
7
-
5
-
8
-
6
-
8
-
11
-
4
-
3
-
4
-
8
-
1
-
6
-
1
-
4
-
2
-
23
-
5
-
4
-
8
-
9
-
9
-
8
-
10
-
5
-
7
-
3
-
3
-
7
-
5
-
4
-
6
-
10
-
11
-
3
-
3
-
5
-
13
-
3
-
3
-
3
-
4
-
4
-
6
-
11
-
7
-
5
-
3
-
3