Рубрики
Без рубрики

Python Regex Quaniesiers – знак вопросительного знака (?) Vs plus (+) vs asterisk (*)

В этом руководстве я покажу вам разницу в количестве регулярных выражений в Python. В чем разница между вопросительным знаком квантификатора (?), Quantifier (+) и квантификатор Asterisk (*)? Скажем, у вас регулярное выражение рисунка A. Regeex A? соответствует нулю или одному вхождению a.regex a * совпадает с нулем или более … python regex quckifiers – вопросительный знак (?) vs plus (+) vs asterisk (*) Подробнее »

Автор оригинала: Chris.

В этом руководстве я покажу вам разницу в количестве регулярных выражений в Python.

В чем разница между оценком вопросительного знака ( ? ), плюс квантификатор ( + ) и квантификатор звездочка ( * )?

Скажем, у вас есть шаблон регулярного выражения A .

  • Regex. А? соответствует нулю или одному вхождению A .
  • Regex. A* соответствует нулю или более вхождению A .
  • Regex. A+ соответствует одному или нескольким вхождениям A .

Попробуй сам:

Связанная статья: Python Regex SuperPower – Ultimate Guide

Вы хотите освоить сверхдержаву Regeex? Проверьте мою новую книгу Самый умный способ изучать регулярные выражения в Python С инновационным 3-ступенчатым подходом для активного обучения: (1) Изучение книги главы, (2) Решите головоломки кода и (3) Смотреть воспроизведение главы видео.

Asterisk против вопросительного знака

Вы можете прочитать Python Re a? Quantifier Как Zero-Or-One Regex: предыдущее REGEX A сопоставлено либо нулевым временем, либо ровно один раз. Но это не совсем не совсем не совсем.

Аналогично, вы можете прочитать оператор Python Re * как нулевое или больше Regex (я знаю, что это звучит немного неуклюжему): предыдущее Regeex A сопоставляется произвольным количеством раз.

Вот пример, который показывает разницу:

>>> import re
>>> re.findall('ab?', 'abbbbbbb')
['ab']
>>> re.findall('ab*', 'abbbbbbb')
['abbbbbbb']

Regex ‘AB?’ Соответствует символу «A» в строке, за которым следует символ «B», если он существует (что он делает в коде).

Regex ‘ab *’ соответствует символу «A» в строке, а затем как можно больше символов B ‘.

Asterisk vs plus

Вы можете прочитать квантификатор Python Re *, как Regex Zero или Morex: предыдущее Regex A сопоставляется произвольным количеством раз.

Аналогично, вы можете прочитать оператор Python Re + как по меньшей мере, когда Regex: предыдущий Regex A также совпадает с произвольным количеством раз, но, по крайней мере, один раз.

Вот пример, который показывает разницу:

>>> import re
>>> re.findall('ab*', 'aaaaaaaa')
['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a']
>>> re.findall('ab+', 'aaaaaaaa')
[]

Regex ‘ab *’ соответствует символу «A» в строке, за которым следует новенький номер вхождения символов «B». Подстрока «A» прекрасно соответствует этой формулировке. Поэтому вы обнаружите, что Regeex совпадает с восемь раз в строке.

Regex ‘AB +’ соответствует персонажу «A», а затем как можно больше персонажей B ‘, но хотя бы один. Однако персонаж «B» не существует, так что нет совпадения.

Резюме : При применении к регулярному выражению a * квантификатор Python соответствует нулю или более вхождению A. Quantifier называется Assterisk оператором, и он всегда применяется только к предыдущему регулярному выражению. Например, регулярное выражение «да *» совпадает с строками «YE», «да» и «yesssssss». Но это не соответствует пустой строке, потому что квантификатор Asterisk * не применяется ко всему Regex «Да», но только для предыдущего регеляции ‘S’.

Вопросительный знак против плюс

Вы можете прочитать Python Re a? Quantifier Как Zero-Or-One Regex: предыдущее REGEX A сопоставлено либо нулевым временем, либо ровно один раз. Но это не совсем не совсем не совсем.

Аналогично вы можете прочитать оператор Python RE A + в качестве регенерации, как минимум-после того, как Regex: предыдущее Regeex A сопоставляется произвольным количеством раз, но, по крайней мере, один раз.

Вот пример, который показывает разницу:

>>> import re
>>> re.findall('ab?', 'aaaaaaaa')
['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a']
>>> re.findall('ab+', 'aaaaaaaa')
[]

Regex ‘AB?’ Соответствует символу «A» в строке, за которым следует символ «B», если он существует – но он не в коде.

Regex ‘AB +’ соответствует символу «a» в строке, а затем как можно больше символов, но хотя бы один. Однако персонаж «B» не существует, так что нет совпадения.

Куда пойти отсюда?

Вы узнали разницу количеств Regex в Python.

Резюме : Regex А? соответствует нулю или одному вхождению А Отказ Regex A * соответствует нулю или более вхождению А Отказ Regex A + соответствует одному или нескольким вхождению А Отказ

Хотите заработать деньги, пока вы изучаете Python? Средние программисты Python зарабатывают более 50 долларов в час. Вы можете стать средним, не так ли?

Присоединяйтесь к свободному вебинару, которое показывает, как стать процветающим владельцем бизнеса в Интернете!

[Вебинар] Вы являетесь личным разработчиком Freelance Six

Присоединяйтесь к нам. Это весело! 🙂.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.