【发布时间】:2010-11-29 14:48:32
【问题描述】:
我这里有一些使用boost::regex::perl 的旧代码,注释很差。之前我想知道一个特定的结构,但由于代码(或多或少)有效,我不愿意碰它。
现在我必须触摸它,出于技术原因(更准确地说,当前版本的 Boost 不再接受该构造),所以我必须弄清楚它做了什么 - 或者更确切地说,是打算这样做的。
正则表达式的相关部分:
(?<!(\bb\s|\bb|^[a-z]\s|^[a-z]))
让我头疼的是\bb。我知道\b,但我找不到提到\bb,在这里寻找文字'b' 是没有意义的。 \bb 是一些特殊的未充分记录的功能,还是我必须认为这是一个错字?
【问题讨论】:
-
你能不能简单地试试
\bb是否匹配“b”(而不是“a”)来检查它是否真的做除了单词边界之外的任何事情,然后是“b”? -
嗯,问题 - 与所有未注释的代码一样 - 是它所做的 可能实际上与它打算 要做的事情无关。我必须针对旧的 (1.34.1) 和当前的 Boost 版本对其进行测试,并且 仍然 必须猜测作者的意图......
-
阅读源代码,卢克(boost::regex::perl 就是......祝你好运:)
-
如果
\bb有特殊含义,那么你将如何指定一个字边界,然后是b? -
@mobrule: 嗯...哦。好点。 :-D