0
模糊標題的道歉。無法正確處理括號的正則表達式
我試圖讓一個正則表達式,搜索和OKS是這樣的:在
「品牌新的歌曲[示範]」
通過尋找「[示範]」的地方該字符串使用re.search()
。這裏是什麼,我認爲應該返回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
是定義部分爲「......空白或者非字母數字,非下劃線。」所以,請幫我看看是什麼愚蠢的細節我很可能會錯過,謝謝!
我不知道他們是怎麼操作的。我如何處理在方括號外面有空白或沒有任何東西?因此,「這是[測試]」將是真實的,但「這[應該]是假的」會是假的? – Befall 2014-10-03 22:40:33
您可以使用非單詞邊界'\ B'或使用lookaround斷言。即(?<!\ S)\ [[^]] * \](?!\ S)' – hwnd 2014-10-03 22:44:33