当前位置: 首页 > 面试题库 >

如何指定unicode字符范围

武琛
2023-03-14
问题内容

如何指定从' '(空格)到Unicode字符的范围\u00D7FF

我有一个类似的正则表达式r'[\u0020-\u00D7FF]',它不会编译说这是一个错误的范围。我是Unicode正则表达式的新手,所以我以前从未遇到过此问题。

有没有办法使我忘记或尚未学习的编译或正则表达式?


问题答案:

unicode范围的语法不会达到您的期望。

  1. 原始r''字符串可防止对\u转义进行解析,而正则表达式引擎将不执行此操作。此集合中的唯一范围是[0-\]

    >>> re.compile(r'[\u0020-\u00d7ff]', re.DEBUG)
    

    in
    literal 117
    literal 48
    literal 48
    literal 50
    range (48, 117)
    literal 48
    literal 48
    literal 100
    literal 55
    literal 102
    literal 102


  2. 将其设置为Unicode文字会导致\u解析,同时不留其他反斜杠(尽管此处不必担心),但是前导零将其弄乱了。语法是\uxxxx\Uxxxxxxxx,所以它解析为“ ,”。\u00d7``f``f

    >>> re.compile(ur'[\u0020-\u00d7ff]', re.DEBUG)
    

    in
    range (32, 215)
    literal 102
    literal 102

  3. 删除前导零或切换到\U0000d7ff可以修复它:

    >>> re.compile(ur'[\u0020-\ud7ff]', re.DEBUG)
    

    in
    range (32, 55295)



 类似资料:
  • 问题内容: 我有一个程序可以从Twitter流API实时解析推文。在存储它们之前,我将它们编码为utf8。某些字符最终以?,??或???出现在字符串中 而不是它们各自的unicode代码,并且会引起问题。经过进一步调查,我发现有问题的字符来自“表情符号”块 U + 1F600-U + 1F64F和“其他符号和象形文字”块 U + 1F300-U + 1F5FF。我尝试删除,但未成功,因为匹配器最终

  • 问题内容: 我读了一些在Ruby中这样做的代码: 输出: 有没有什么可以做到的呢?如果没有,是否有Node模块允许类似的东西? 问题答案: Javascript本身没有该功能。您可以在下面找到一些如何解决的示例: 正常功能,基本平面中的任何字符(不检查代理对) 与上面相同,但是作为添加到数组原型的函数,因此可用于所有数组: 预选字符的范围。比上面的函数要快,并且可以用来表示AZ和az: 或asci

  • 问题内容: 在Java中,可以将数字零作为Socket或DatagramSocket构造函数的单个参数。Java然后将该Socket绑定到一个空闲端口。是否可以将端口查找限制为特定范围? 问题答案: 嗯,阅读文档后,我认为您不能。您可以绑定到任何端口,然后在不可接受的情况下重新绑定,或者重复绑定到您范围内的端口,直到成功。第二种方法将是“最有效的”。 我对此回答感到不安,因为它很不雅,但我真的也找

  • 问题内容: 我想将数字限制在一定范围内。目前,我正在执行以下操作: 这样可以将其保留在和中,但看起来不太好。我怎样才能做得更好? PS:仅供参考,我正在使用Python 2.6。 问题答案: def clamp(n, minn, maxn): return max(min(maxn, n), minn) 或功能等效: 现在,您使用: 或者说得很清楚: 更清晰:

  • 抱歉,目前我尚未完成这个主题,请稍后再来。 (译注:C++对unicode的支持不是特别重视)

  • 问题内容: 假设我有一个包含Ü的字符串。我将如何找到所有这些unicode字符?我应该测试他们的代码吗?我该怎么做? 例如,给定字符串“AÜXÜ”,我想将其转换为“ AYXY”。我想对其他unicode字符执行相同的操作,并且我不希望将它们存储在某种翻译图中。 问题答案: “ unicode字符”的定义含糊不清,但是将被视为表示标准ISO 8859字符集 未涵盖的UTF-8 字符。如果您的情况是这