在“窄”Python构建中,we should使用特殊的regex模式匹配代理项对的范围。这种模式可能相当复杂:
# Pattern we want:
pattern = '[\U000105c0-\U0001cb40]'
# Pattern we should use in "narrow" build:
pattern = '(?:\uD801[\uDDC0-\uDFFF]|[\uD802-\uD831][\uDC00-\uDFFF]|\uD832[\uDC00-\uDF40])'
但是如何为给定的任意代理项范围(例如\U000105c0
-\U0001cb40
)创建一个呢?在
创建这种模式的算法是什么?在
Python中有现成的解决方案吗?在
安装http://www.regexformat.com应用。
(适用于windows)
您可以在任何范围内执行以下操作。
只需要一个正则表达式来描述它(或任何东西)。在
打开
UCD Interface
http://imgur.com/S8V0mIG在自定义接收页面上,输入
[\x{105c0}-\x{1cb40}]
在输出中选择所需的转换语法 (这使用了
\x{}
语法)。在单击按钮
Get Hex Conversion
->;UTF-16
(它是一个菜单按钮)复制结果框底部的正则表达式。在
如果您将其粘贴到某个主要应用程序文档中并
按一下压缩,结果是
(?:\x{D801}[\x{DDC0}-\x{DFFF}]|[\x{D802}-\x{D831}][\x{DC00}-\x{DFFF}]|\x{D832}[\x{DC00}-\x{DF40}])
这里它使用
\uXXXX
语法(?:\uD801[\uDDC0-\uDFFF]|[\uD802-\uD831][\uDC00-\uDFFF]|\uD832[\uDC00-\uDF40])
我创建了一个函数来处理我们可能需要的大多数情况。在
Python 2代码:
相关问题 更多 >
编程相关推荐