Noe*_*mer 9 unicode newline carriage-return linefeed rust
每种编程语言都有自己的解释\n和\r.Unicode支持可以表示新行的多个字符.
从Rust参考:
空白转义是字符U + 006E(n),U + 0072(r)或U + 0074(t)之一,表示Unicode值U + 000A(LF),U + 000D(CR)或U + 0009(HT).
根据该声明,我会说Rust字符是一个新行字符,如果它是\n或者\r.在Windows中,它可能是组合\r和\n.我不确定.
以下怎么样?
在我看来,我们错过了像char.is_new_line().我查看了Unicode字符类别,但找不到新行的定义.
我是否必须提出我自己对Unicode换行符的定义?
use*_*968 13
Java,Python,Go和JavaScript等语言之间存在相当大的实际分歧,即构成换行符的内容以及转换为"新行"的方式.他们的分歧是由电池,包括正则表达式引擎如何对待像图案表现出$对像串\r\r\n\n在多行模式:有两行(\r\r\n,\n),三线(\r,\r\n,\n,像Unicode的说),四(\r,\r,\n,\n,就像JS看到的那样)?Go和Python不会\r\n单独处理,$Rust的正则表达式也不会; 然而,Java确实如此.我不知道任何语言的电池将换行处理扩展到任何更多的Unicode字符.
所以这里的内容是
\n是一个换行符\r\n 可能只是一个换行符\r\n被视为两个换行符\r\n"某个字符后跟换行符"如果您确实需要将更多Unicode字符视为换行符,则必须定义一个为您执行此操作的函数.不要指望期望的真实世界输入.毕竟,我们拥有数千年的ASCII记录分隔符,而且每个人都使用\t它.
更新:请参阅http://www.unicode.org/reports/tr14/tr14-32.html#BreakingRules 部分,LB5了解为什么\r\r\n应将其视为两个换行符.您可以阅读整页以了解原始问题的实施方式.我的猜测是你到达" 东南亚:换行需要形态分析 "你将关闭标签:-)
| 归档时间: |
|
| 查看次数: |
2481 次 |
| 最近记录: |