daw*_*awg 21
检查您的正则表达式引擎是否支持\R作为速记字符类,您不需要关注各种Unicode换行符/换行组合.如果正确实现,则可以使用透明地匹配所有各种ascii或Unicode行结尾\R.
在Unicode中你需要检测NEL(OS/390行结束,\ x85)LS(行分隔符,\ x2028)和PS(段落分隔符,\ x2029)如果你想要完全跨平台这些天.
LS,NEL和PS是否应被视为换行符,行结尾或空格是有争议的.例如,XML 1.0标准不会将 NEL 识别为换行符.ECMAScript处理LS和PS作为换行符,但NEL作为空格.Perl的Unicode的 regexs会治疗VT,FF,CR,CRLF,NEL,LS和PS换行符为宗旨^和$正则表达式元字符.
在Unicode的实施指南(第5.8节和表5.3)可能是最好的选择是什么一个什么样的"换行",是彻底治疗.
如果你只关注与DOS/Windows的/ Unix/Mac类似经典的变种ASCII,正则表达式相当于\R是(?>\r\n|[\r\n])
在Unicode中,相当于\R是(?>\r\n|\n|\x0b|\f|\r|\x85|\x2028|\x2029)该\x0b中有一个垂直制表符; 再一次,这可能适合或不适合您对换行符的定义,但这确实符合Unicode植入的建议.(FF,或者\x0C不包含在正则表达式中,因为换页是一个新页面,而不是定义中的新行.)
| 归档时间: |
|
| 查看次数: |
34546 次 |
| 最近记录: |