[英]Regex to match all unicode character above '\uFFFF'
當我獲得 UCS-4 字符時,Pygame 和 Pyglet 都崩潰了:
exceptions.UnicodeError: 發現 '\' 上方的 Unicode 字符; 不支持
如何使用正則表達式過濾所有這些字符?
盡管您的問題要求使用正則表達式,但它並不是最合適的工具。 您可以迭代變量 use ord(c) > 0xFFFF
每個字符來檢測有問題的字符。
但是如果你需要正則表達式,試試 (python3)
import re
r1 = re.compile("[\U00010000-\U0010FFFF]")
m1 = r1.search( "Text\u00A0\U0001FFFF" )
print (m1.group())
print (m1.start())
print (m1.end())
對於python2,只需在字符串文字前添加“u”(使它們成為unicode)。
字體實際上可能是這里的真正問題,所以我不確定使用正則表達式進行什么好的過濾會對您有幫助。 我建議查看pygame.freetype
模塊,因為它不限制使用\
范圍以上的代碼點。
要使用 pygame.freetypeEnhanced Pygame 模塊加載和渲染基於 pygame.ftfont 的計算機字體作為 pygame.fontpygame 加載和渲染字體的模塊,在第一次導入 pygamethe 頂級 pygame 包之前定義環境變量 PYGAME_FREETYPE。 pygame.ftfont 是一個 pygame.fontpygame 模塊,用於加載和渲染字體兼容模塊,它通過了除一個字體模塊單元測試之外的所有測試:它沒有基於 SDL_ttf 的字體模塊的 UCS-2 限制,因此無法引發異常對於大於“uFFFF”的代碼點。 如果用於加載和渲染計算機字體的 pygame.freetypeEnhanced Pygame 模塊不可用,則將加載 SDL_ttf 字體模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.