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 不行呢。
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 不行呢。
留言
張貼留言