Board logo

标题: [文本处理] 请问哪种语言处理文本最强大而不失真 [打印本页]

作者: 踏沙行    时间: 2018-9-21 12:03     标题: 请问哪种语言处理文本最强大而不失真

最近学习bat发现特别吃力,原因是对文本的限制太多,比如一行不能超过8192,比如不能包含特殊字符。比如不兼容unicode编码
如果要替换文本中的星号,都特别麻烦

后来学习了sed,发觉确定简洁和强大多了。但是sed和bat混用的时候,对于变量延迟的要求特别严格,不小心会出错。
这几天发现,sed在替换字符串时,如果遇到有"\",会自动把斜杠抛弃。

请问,哪种语言对文本的读、写、改,能够最大程度的实现原汁原味,而不”擅自”处理?
作者: Batcher    时间: 2018-9-21 12:45

试试PowerShell吧
作者: CrLf    时间: 2018-9-21 14:46

perl很擅长文本处理 ,不过更建议学python,延展性更大
作者: 523066680    时间: 2018-9-21 14:51

有很多语言都支持,需要掌握一定的编码知识。
作者: 踏沙行    时间: 2018-9-21 16:38

很早听说perl是处理文本最强大的语言,后来才有了python,有些纠结不知道该学哪个
不过谢谢大家的指导
作者: 523066680    时间: 2018-9-21 17:31

现在学python是主流,可以做很多狂拽酷炫的事情,也可以做实用工具。
作者: codegay    时间: 2018-9-23 04:23

楼主能学会SED学其它语言应该没有什么问题。
基本上能学会一门编程语言的基础再去学其它编程都很容易。

如果要学python, 推荐直接学python3
编码的问题,如果UTF8可以满足的话,各个环节上尽量统一使用UTF8编码保存你的代码和文本内容。
这样可以省掉很多不必要的麻烦。
作者: 踏沙行    时间: 2018-9-23 06:36

回复 7# codegay
谢谢,似乎sed、awk、grep,不少语言也支持使用吧。毕竟三剑客处理文本的功能很强大。
但不知道python中,有没有什么命令可以代替甚至超越sed?
作者: 踏沙行    时间: 2018-9-23 06:36

回复 7# codegay
谢谢,似乎sed、awk、grep,不少语言也支持使用吧。毕竟三剑客处理文本的功能很强大。
但不知道python中,有没有什么命令可以代替甚至超越sed?
作者: codegay    时间: 2018-9-23 08:35

本帖最后由 codegay 于 2018-9-23 08:40 编辑

回复 9# 踏沙行

这些工具都统一支持的文本处理规则叫正则表达式,编程语言里以库的形式来支持和兼容正则表达式。不同编程语言里的正则表达大体都相同。只是一些符号细节表达方式不同。

python的标准正则表达库是re

第三方有一个非常强大的正则表达式库叫做regex
https://www.cnblogs.com/gayhub/p/6354097.html

你先踏实把语言学入门了吧。没有基础是用不了的。
作者: 踏沙行    时间: 2018-9-24 11:42

回复 10# codegay
OK,谢谢
regex的库果然厉害,\p{han}、\p{latin}这样的匹配,厉害了
作者: Batcher    时间: 2018-9-24 19:53

支持Python




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2