仅当字数在1-50之间时,正则表达式匹配

时间:2014-03-03 19:34:08

标签: python regex

所以我有这段代码:

(r'\[quote\](.+?)\[/quote\]')

我想要做的是更改正则表达式,使其仅在[quote] [/ quote]中的文本介于1-50个单词之间时匹配。

有没有简单的方法可以做到这一点?

编辑:在正则表达式示例中删除了令人困惑的html代码。我 NOT 试图匹配HTML。

2 个答案:

答案 0 :(得分:2)

当然,取决于你如何定义“单词”。

我会单独使用正则表达式,但是如果你想使用正则表达式,你可能会这样做:

r"\[quote\](.+?\s){1,49}[/quote\]"

这将匹配2到50个单词(因为它需要尾随\s,它不能匹配ONE)

Crud,也与最后一个字不匹配,所以让我们这样做:

r"\[quote\](.+?(?:\s.+?){1,49})\[/quote\]"

答案 1 :(得分:1)

由于很多原因,这是对正则表达式的明确误用,其中最重要的是与@Hyperboreus指出的匹配[X] HTML的问题,但如果你真的坚持你可以做{{1 }}。

为了记录,我不建议这样做。