如何使用这样的单词bounder来捕捉包含在方括号中的单词:\b<WORD-IN-ANGLE-BRACKETS>\b
。似乎存在某种类型的错误,如果方括号触及单词边界则不匹配。
看看这个例子:
re.findall(r"\b(<\w+>)\b", "<A> B <C>") # 1. output: []
re.findall(r"(<\w+>)", "<D> E <F>") # 2. output: ['<D>', '<F>']
re.findall(r"\b(\w+)\b", "G H I") # 3. output: ['G', 'H', 'I']
re.findall(r"\b(z<\w+>z)\b", "z<D>z z<E>z z<F>z") #4. output: ['z<D>z', 'z<E>z', 'z<F>z']
正如你在#4中看到的那样,如果我在方括号和边界之间放置一些东西,那么它就会起作用,所以这只会在它们触碰时发生。
这里发生了什么?为什么不#1工作但#4有效?我怎样才能让#1工作?