V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
simple26
V2EX  ›  程序员

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

  •  
  •   simple26 ·
    liuchengxu · 2016-08-09 08:31:19 +08:00 · 3835 次点击
    这是一个创建于 2825 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,比如将英文标点替换为中文标点,一致使用中文标点?

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

    另,现代编辑器 Replace All 都应该支持正则的,研究下完全能达到和 tr 一样的替换的效果。
    simple26
        22
    simple26  
    OP
       2016-08-09 11:16:56 +08:00
    @siteshen 即使是您给出的示例代码 我只是多加了几个标点符号简单测试一下便发现并非那么简单
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1841 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:57 · PVG 08:57 · LAX 17:57 · JFK 20:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.