簡體   English   中英

正則表達式匹配 '\￿' 以上的所有 unicode 字符

[英]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 字體模塊。

http://www.pygame.org/docs/ref/font.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM