У меня есть некорректно прокомментированный старый код здесь, который использует boost::regex::perl
. Мне было интересно об одной конкретной конструкции раньше, но поскольку код работал (более или менее), я не хотел касаться его.boost :: regex - bb?
Теперь я есть прикоснуться к ней, по техническим причинам (точнее, текущие версии Boost, больше не принимает конструкцию), так что я должен понять, что это делает - или, скорее, был предназначен делать.
Соответствующая часть регулярного выражения:
(?<!(\bb\s|\bb|^[a-z]\s|^[a-z]))
Кусок, который дает мне головные боли является \bb
. Я знаю \b
, но я не мог найти упоминания о \bb
, и ища литерал 'b'
здесь не имеет смысла. Есть \bb
какая-то специальная недокументированная функция, или я должен считать эту опечатку?
Не могли бы вы не просто попробовать, если `\ bb` соответствует«б» (а не «а»), чтобы проверить, действительно ли оно делает что-либо иное, кроме границы слова, а затем «b»? – Jens 2010-11-29 14:57:01
Ну, проблема - как и со всем бездокументарным кодом - заключается в том, что то, что он * делает *, может не соответствовать действительности, что было * предназначено для выполнения. Мне пришлось бы протестировать его против старой версии (1.34.1) и текущей версии Boost, и * все еще нужно было бы догадаться о намерении автора ... – DevSolar 2010-11-29 15:33:44