|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* Или прямо перед символом новой строки в конце строки. ** Некоторые из этих символов в нашей книге не описываются. См. книгу Programming Perl или man-страницу perlreii(l). Согласно этой таблице, специальный символ * имеет более высокий приоритет, чем |. В силу этого /а |b*/ интерпретируется как один символ а или любое число символов b. Что, если нам понадобится другое — например, "любое число символов а или b"? В этом случае нужно просто использовать пару круглых скобок. В нашем примере в скобки нужно заключить ту часть выражения, к которой должна относиться *, т.е. (а|b)*. Если вы хотите подчеркнуть, какое выражение вычисляется первым, можно дать избыточные круглые скобки: а (b*). Изменение приоритета с помощью круглых скобок одновременно активизирует режим запоминания для данного образца, как мы рассказывали выше. То есть эти круглые скобки учитываются, когда вы определяете, соответствует ли какой-то элемент \2, \3 и т.д. Если вы хотите использовать круглые скобки без включения режима запоминания, применяйте форму (?:...), а не (...). Она тоже позволяет указывать множители, но не изменяет значение счетчика подлежащих запоминанию лексем, используя, например, переменную $4 и т.п. Например,/(?: Fred |Wilma) Flintstone/ ничего не записывает в переменную $ 1; здесь просто предполагается группирование. Вот еще несколько примеров регулярных выражений и действия круглых скобок: abc* # соответствует ab, abc, abcc, abccc, abcccc, и т.д. (abc)* # соответствует "", ab, abc, abcabc, abcabcabc, и т.д. ^х|у # соответствует х в начале строки или у в любом месте ^x.^y) # соответствует х или у в начале строки а|be|d # либо а, либо be, либо d (a|b)(с|d) # ас, ad, be или bd (song|blue)bird # songbird или bluebird Содержание (общее) | Содержание раздела | Содержание подраздела Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту: |
|