0

我正在寻找一种将字符串(Unicode)中的转义序列转换为目标字符的有效方法。字符串是从文件中读取的一些解析后的语言字符串,我们要根据规则进行转换:(注意:转义规则与python本身的转义规则不同)

\uxxxx (four hex digits) --> gives the Unicode character with the given code point
\LF \CR \CR+LF  --> '' : a backslash character followed by a line break removes 
                         both of them, where line break is not platform specific.
(For example: "aa\\\nbb", "aa\\\rbb", "aa\\\r\nbb" all gives "aabb")

\f --> FF char
\n --> LF char
\r --> CR char
\t --> TAB char
\C where C is any other *Unicode* character  ---> gives C itself.
  This includes the escaped backslash '\\' sequence, which should be consumed
  first from left to right:

  r'\\\\u0050' --> r'\\u0050'
  r'\\\\\u0050' --> r'\\P'

(基本上这些规则有点类似于许多语言中可用的转义规则,例如 Perl 和 Ruby,如果我没记错的话)

(请注意:我在示例中使用原始或普通形式的字符串只是为了说明字符串的准确翻译方式)

是否有可能使用这样的规则来改进循环字符串并进行前瞻的最天真的方法,在过程中附加到目标字符串。

一个有点类似的问题在这里提供了基于拆分和重新加入字符串的答案,但由于连续的转义问题,我认为这不能在这里应用。

4

0 回答 0