0

通过一些遗留代码,我在模型过滤器中偶然发现了这个正则表达式:

"[[:<:]](%s)[[:>:]]" % value

我知道内部方括号与文字方括号匹配,但我找不到对冒号和 lt/gt 的任何引用。

这应该匹配什么?

4

1 回答 1

2

正如您问题的评论者所指出的那样,这可能是一个错误,或者有人拉扯您的链条。我无法想象它有什么用处。但是要明确回答您的问题,这里有一些可以匹配的内容。这假设 Python 已经替换%sfoo

[]foo:]
:]foo:]
<]foo:]
<]foo>]
[]foo>]
[]foo:]
[]foo[]

也许这是一次(失败的)尝试找到类似<foo>:foo:

正则表达式的解释(我已经删除了:多余的重复项,并且似乎表明这完全是一个错误,或者不打算使用 Python 运行re):

[[:<] # match one `[` or `:` or `<`
]     # one literal right bracket
(     # open capture group
foo   # literal string `foo`, or whatever replaced `%s`
)     # close capture group
[[>:] # match one `[` or `>` or `:` 
]     # one literal right bracket

这是什么意思呢?你的猜测和任何人的一样好。

于 2013-04-22T17:00:12.590 回答