Расширение базового знания регулярных выражений, и некоторые вещи для меня непонятны.Perl-regex эквивалент слова-границы
Если \b
соответствует границе слова, следующие два регулярных выражения имеют то же значение - например. будут совпадать с теми же строками?
/\bword\b/
/(^|\W)word(\W|$)/m #when multi-line is turned on
/(\A|\W)word(\W|\z)/
с просьбой, потому что \b
означает слова граничного. Слово \w+
, поэтому \b
должно быть любым, что не является \w
, например. это должно быть \W
или начало или конец строки или строки. (или нет?) (не считая групп захвата, вероятно, было бы лучше использовать какой-то не захватывающий внешний вид).
и эти два?
/word\B/
/word\w/
Если слово должно быть «nonword-граница» в конце концов, это означает, что изолейцина в слово должен сопровождаться \w
(слова) характер. (Или нет?)
Btw, '/ (^ | \ W) word (\ W | $) /', '/ (^ | \ W) word (\ W | $)/m','/(\ A | \ W) word (\ W | \ z)/'и'/(\ A | \ W) слово (\ W \ \ z)/m' совпадают с одним и тем же. – ikegami
@ikegami hm ... Снова я понимаю что-то не так. ; (К этому моменту я думаю, что '/ some $ /' не будет соответствовать 'some \ nstring', но'/some $/m' будет, а '/ some \ z /' никогда не будет соответствовать ' «some \ nstring» 'независимо от' m' .Что я пропустил? Должен ли я задать новый вопрос? – kobame
@ikegami YES, теперь получил (надеюсь)! когда 'm' отсутствует, новая строка соответствует '\ W'. – kobame