相当于\ b的正则表达式也匹配多个空格

时间:2015-08-15 10:33:24

标签: python regex

如何在自定义类(或其他非^|\s+|$ ified手段)中捕获等效的|

\b似乎不适用于+(这是有道理的)。

对于这个非常相似的案例,是否有可能具有\b的整洁度? \b+,基本上。

抽象案例:

搞清楚凌乱的文字:

re.sub(ur'(^|\s+)(someting\simportant)(\s+|$)', lambda x: process_x(x), long_messy_text)

其中process_x有关于应该做什么的规则,具体取决于它找到的内容的“形状”(填充量等),对于不希望仅运行doc 所有文档的文档额外空间等。

对于双方来说,只有一件事情会很好。

编辑:类似的情况我刚碰到:

如果我有这个:u'T sold a net $746,423 in XCorp'

我想要回复:u'$746,423'我尝试与此匹配:\b\$[0-9,]+\b

但它失败了。美元金额也可以在字符串的开头。人们也会做$12mile之类的事情。

我正在使用(^|\s),但\b - 就像我期望的那样。

2 个答案:

答案 0 :(得分:5)

你不能。

^$等锚点无法在其他任何内容中捕获,它们不是字符。这些锚点的匹配部分实际上在字符之间,因此^匹配任何内容和字符串的第一个字符,对于带有$的字符串的结尾相同。你把它们放入角色课的那一刻就失去了意义。

答案 1 :(得分:0)

一般情况下,您可以在正则表达式中使用字符类[\b\s]