有什么编辑器,支持基于字典的搜索替换吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lada04
V2EX    问与答

有什么编辑器,支持基于字典的搜索替换吗?

  •   lada04 2018-09-03 21:02:16 +08:00 1737 次点击
    这是一个创建于 2603 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如一篇文章,需要把“鱼塘”替换成“福气”,“怪想”替换成“派件”(随便举得例子)……大概有 110 多个替换关系

    普通编辑器,要手动做 110 多次替换。有没有编辑器,能基于替换关系的字典,直接一次性替换?

    当然字典肯定有约定的格式,这没关系,用正则处理一下符合他的格式,也总比手动替换来得快

    有朋友可能说自己写个小脚本……楼主文科生不会写…

    8 条回复    2019-01-03 10:43:14 +08:00
    ps1aniuge
        1
    ps1aniuge  
       2018-09-03 21:35:22 +08:00
    t/482614
    win,linux 通用的替换脚本。ps 找算替 欢迎收藏。如果不会用,我可以给你写脚本。
    laycher
        2
    laycher  
       2018-09-03 21:57:33 +08:00
    Everedit
    huawuya
        3
    huawuya  
       2018-09-03 23:30:29 +08:00
    http://nullice.com/Gasoft/Siphonink/index.html#fu 我想你需要的是这个软件里的批量替换功能。
    EricXuu
        4
    EricXuu  
       2018-09-04 00:07:55 +08:00 via Android
    notepad++
    zifuir
        5
    zifuir  
       2018-09-04 00:10:58 +08:00 via iPhone
    word 里的宏,搜句 vba,就能实现你要的效果
    Lax
        6
    Lax  
       2018-09-04 01:18:37 +08:00
    简单文本格式的话直接 sed 吧
    jin7
        7
    jin7  
       2018-09-04 12:29:05 +08:00
    powershell 写个脚本.
    wandero
        8
    wandero  
       2019-01-03 10:43:14 +08:00
    @lada04

    Office 套装用 VBA 宏可以比较方便的实现

    操作
    在 xls 中 A 列和 B 列 分别填好被替换内容和替换内容,在 Word 中运行宏

    注意
    确定 xls 文件路径和 活动工作表名称正确设置
    确定 VBA 编辑器-工具-引用 中 Microsoft Excel 14.0 Object Library 勾选
    单个单元格内容不能超过 254 字符

    代码(搬运自 ExcelHome )

    ```
    Sub 按表替换()
    '首先引用 ms excel
    '运行前关闭所有 excel 程序
    Dim ex As Excel.Application, boo As Excel.Workbook, shee As Worksheet, i As Integer
    Set ex = New Excel.Application
    Set boo = ex.Workbooks.Open("d:\e\f.xls") '文件路径
    ex.Visible = False '设置 EXCEL 对象可见(或不可见)
    Set shee = boo.Worksheets("Sheet1") '设置活动工作表
    With shee
    For i = 1 To .Range("b65536").End(xlUp).Row
    ActiveDocument.Content.Find.Execute findtext:=.Range("a" & i), replacewith:=.Range("b" & i), Replace:=wdReplaceAll, Forward:=True '将 excelA 列替换为 B 列内容
    Next
    End With
    boo.Close
    ex.Quit
    Set boo = Nothing
    Set ex = Nothing
    End Sub
    ```
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3287 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 11:48 PVG 19:48 LAX 04:48 JFK 07:48
    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