python regex 奇怪的空白字元

這兩天在處理一份文件的時候,發現文件大部分的題目都能正常處理,不過就有一兩個部分沒反應。

https://gist.github.com/wlhunag/4477f1751b837198476a

後來才發現我regex 裡面為了符合空格而寫的 \s,只符合 [ \t\n\r\f\v] 
但是我文件有問題的部分剛好是 U+00A0 或說是 C2A0 ,查了一下Google 發現那是No breacking space.

解決方式是在 regex 加上 re.UNICODE 這個 flag, 如此一來就會符合所有在 Unicode Database 裡面算做是空白的字元。

我用Regexbuddy 和線上的 regex101測試都沒問題,貌似他們直接支援 Unicode,難怪讓我想很久,為什麼用 python 不行呢。

留言

這個網誌中的熱門文章

Anki 教學 - 基礎知識

Anki 教學 - 學習卡片

Anki 教學 - 牌組選項之新卡片