如何优雅地将 md 文件中的中英文混合标点符号进行统一? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
simple26

如何优雅地将 md 文件中的中英文混合标点符号进行统一?

  •  
  •   simple26
    liuchengxu 2016 年 8 月 9 日 4327 次点击
    这是一个创建于 3545 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,比如将英文标点替换为中文标点,一致使用中文标点?

    用 Python 写个小程序还是有更好更便捷的解决方案?
    22 条回复    2016-08-09 11:16:56 +08:00
    cccRaim
        1
    cccRaim  
       2016 年 8 月 9 日
    正则替换
    tobyxdd
        2
    tobyxdd  
       2016 年 8 月 9 日 via Android
    记事本查找替换就行
    simple26
        3
    simple26  
    OP
       2016 年 8 月 9 日
    @cccRaim 正则替换可以依次将英文逗号替换为中文逗号,英文句号替换为中文句号?
    simple26
        4
    simple26  
    OP
       2016 年 8 月 9 日
    @tobyxdd 一个一个查找替换的确可以,但是比较费时费力,属于暴力解法。。
    cccRaim
        5
    cccRaim  
       2016 年 8 月 9 日
    @simple26 不行吗
    siteshen
        6
    siteshen  
       2016 年 8 月 9 日   1
    cat filename.md | tr ',.' ',。'
    yangtukun1412
        7
    yangtukun1412  
       2016 年 8 月 9 日
    自己之前是 vim 写了个函数用正则替换的...
    thinkmore
        8
    thinkmore  
       2016 年 8 月 9 日
    sublimeText 的 Alt+F3 会有意想不到的效果呀,再不行,写个正则也是分分钟的事情呀
    simple26
        9
    simple26  
    OP
       2016 年 8 月 9 日
    @cccRaim 不了解 愿闻其详
    simple26
        10
    simple26  
    OP
       2016 年 8 月 9 日
    @siteshen 要知道英文标点可不止逗号,句号,还有分号,省略号。。。。。。
    simple26
        11
    simple26  
    OP
       2016 年 8 月 9 日
    @yangtukun1412 代码可粘贴来学习一下?
    simple26
        12
    simple26  
    OP
       2016 年 8 月 9 日
    @thinkmore 这个快捷键是你自定义的? 在默认的 sublime text 快捷键好像还这没找到带有 f3 的快捷键。。。
    simple26
        14
    simple26  
    OP
       2016 年 8 月 9 日
    @yangtukun1412 看了一下 还是一个一个替换 并不是期待的“优雅”方案 。。
    bp0
        15
    bp0  
       2016 年 8 月 9 日
    个人认为,删除中文输入法是最优雅的做法。(捂脸逃
    amaranthf
        16
    amaranthf  
       2016 年 8 月 9 日
    不太理解怎么叫一个一个的替换,不是有个“全部替换”的选项么?如果文件多的话,几乎所有高级文本编辑工具都有多文件替换的功能啊?
    tangbao
        17
    tangbao  
       2016 年 8 月 9 日
    基本上大部分编辑器都有一个 Replace All 的功能吧。。
    simple26
        18
    simple26  
    OP
       2016 年 8 月 9 日
    @amaranthf 额。。 一个一个替换是指英文逗号替换为中文逗号,英文句号替换为中文句号,以此类推,将所有的英文标点替换为对应的中文标点。 “全部替换”应该指的是将全部某个标点进行替换吧 我想是否有将全部标点进行对应替换, 而不是某一个 @yangtukun1412 做法可行 但是不全面
    yangtukun1412
        19
    yangtukun1412  
       2016 年 8 月 9 日
    @simple26 我猜你的意思是, 想要用一条正则匹配出多种英文标点, 而不是多条正则, 每次匹配一种?
    simple26
        20
    simple26  
    OP
       2016 年 8 月 9 日
    @yangtukun1412 我也不知道要怎么做 只是期待是否会有比较好的方案 像您的这种做法 思路我是了解的
    siteshen
        21
    siteshen  
       2016 年 8 月 9 日
    @simple26 我给的当然只是示例代码,不过回答这个问题已经足够了。

    另,现代编辑器 Replace All 都应该支持正则的,研究下完全能达到和 tr 一样的替换的效果。
    simple26
        22
    simple26  
    OP
       2016 年 8 月 9 日
    @siteshen 即使是您给出的示例代码 我只是多加了几个标点符号简单测试一下便发现并非那么简单
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2849 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 64ms UTC 13:00 PVG 21:00 LAX 06:00 JFK 09:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86