Вопросительный знак (?)
Вопросительный знак (?) в регулярных выражениях означает, что предшествующий ему символ может присутствовать или отсутствовать в строке.
Например, регулярному выражению 10? соответствуют в том числе следующие строки:
- 1
- 10
Допустим, нам нужно, чтобы регулярное выражение соответствовало всем IP-адресам, у которых последняя часть содержит одну или две цифры.
Так, регулярному выражению 216\.239\.32\.\d\d? соответствуют в том числе следующие строки:
- 216.239.32.2
- 216.239.32.34
В этом примере используется обратная косая черта, чтобы точка не интерпретировалась как специальный символ, а сочетание символов \d означает "любая цифра".
Плюс (+)
Плюс (+) в регулярных выражениях означает, что предшествующий символ должен присутствовать и может повторяться несколько раз подряд.
Например, регулярному выражению 10+ соответствуют в том числе следующие строки:
- 10
- 100
- 1000
- ...и т. д.
Допустим, нам нужно, чтобы регулярное выражение соответствовало всем IP-адресам, у которых последняя часть содержит одну или несколько цифр.
Так, регулярному выражению 216\.239\.32\.\d+ соответствуют в том числе следующие строки:
- 216.239.32.2
- 216.239.32.34
- 216.239.32.567
В этом примере используется обратная косая черта, чтобы точка не интерпретировалась как специальный символ, а сочетание символов \d означает "любая цифра".
Звездочка (*)
Звездочка (*) в регулярных выражениях означает, что предшествующий символ может присутствовать, отсутствовать или повторяться несколько раз подряд.
Например, регулярному выражению 10* соответствуют в том числе следующие строки:
- 1
- 10
- 100
- 1000
- ...и т. д.
Допустим, нам нужно, чтобы регулярное выражение соответствовало всем IP-адресам, у которых последняя часть содержит одну или несколько цифр.
Так, регулярному выражению 216\.239\.32\.\d* соответствуют в том числе следующие строки:
- 216.239.32.2
- 216.239.32.34
- 216.239.32.567
В этом примере используется обратная косая черта, чтобы точка не интерпретировалась как специальный символ, а сочетание символов \d означает "любая цифра".
Если в регулярном выражении звездочка следует за точкой (.*), то ему будут соответствовать все строки, где на месте этого сочетания знаков находится абсолютно любая последовательность символов (или вообще ничего). Точка означает "любой символ", а следующая за ней звездочка означает "может повторяться сколько угодно раз или вообще отсутствовать". Так можно создать регулярное выражение, которому будут соответствовать все URI с определенным началом и окончанием, и любой серединой. Например, регулярному выражению /mens/.*html соответствуют в том числе следующие строки:
- /mens/shirts/oxford.html
- /mens/shirts/oxford/shortsleeve.html