为这个模糊的标题道歉
我想找一个正则表达式来搜索并确定如下内容:
"Brand New Song [Demonstration]"
通过使用re.search()
在字符串的某处找到“[Demonstration]”。下面是一个我认为应该返回True的示例:
bool (re.search (r"\b\[Demonstration\]\b", "Brand New Song [demonstration]", re.IGNORECASE))
更简单的是,它也返回False:
bool (re.search (r"\b\[\b", " [ "))
我一直使用\b
作为捕获字符串的开头和结尾,因为它应该表示单词(as per documentation here))开头或结尾的任何空格字符串,我看不出我搞砸了什么
继续迷惑,以下返回True:
bool (re.search (r"\b\[\b", "_[_"))
这同样令人困惑,因为\b
被定义为“…空格或非字母数字、非下划线字符。”所以,请帮我找出我可能遗漏的愚蠢细节,谢谢
您需要从模式中删除单词边界
\b
单词边界不使用任何字符,它断言在一侧有单词字符,而在另一侧没有。如regular-expressions.info documentation中所述:
相关问题 更多 >
编程相关推荐