全球主机交流论坛

标题: 如何批量将英文的双引号替换为中文的前后双引号 [打印本页]

作者: GeekDuanLian    时间: 2018-2-5 19:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: 风铃    时间: 2018-2-5 19:21
本帖最后由 风铃 于 2018-2-6 01:07 编辑

notepad++ 或者 任何一个ide (vscode idea atom sublime)
点一下就可以直接替换

1. 目录中搜索 "(.+?)"
2. 替换 “$1”


当然 写个shell也可以直接批量替换掉, 原理同上


  1. sed -i "s/\"\(.\+\?\)\"/“\1”/g" `grep '"' -rl your_path`
复制代码


sed -i "s/\"\(.\+\?\)\"/“\1”/g" `grep '"' -rl your_path`



作者: wjk199511140034    时间: 2018-2-5 19:28
第一步,下载该文件。、
第二步,打开记事本。
第三步,,,,,
我是来捣乱的,不要打我
作者: 王表弟    时间: 2018-2-5 19:30
editplus+excel可以满足你
作者: 无限啸傲    时间: 2018-2-5 19:32
正则
作者: fengshu    时间: 2018-2-5 19:34
wjk199511140034 发表于 2018-2-5 19:28
第一步,下载该文件。、
第二步,打开记事本。
第三步,,,,,

第三步
Ctrl+F Ctrl+C Ctrl+V
作者: di2018    时间: 2018-2-5 19:37
有一定难度,等高手出现了,英文里面的引号好像没有前后之分
作者: asdqwe876    时间: 2018-2-5 19:39
如果你保证源文本的符号是匹配的话其实很简单
作者: GeekDuanLian    时间: 2018-2-5 20:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: jiajieit    时间: 2018-2-5 20:09
究竟有多少个啊,如果是几十个notepad就可以,全部打开,历遍,替换。
作者: VigoFen    时间: 2018-2-5 20:17
notepad正解 很方便
作者: 童心    时间: 2018-2-5 20:21
正则很简单的,文件多再写脚本批量就可以了
作者: bluevm    时间: 2018-2-5 20:33
分奇偶的,如果用PHP的话,我用$w=explode('"',$str);
然后循环数组
$i=2
$newstr="";
foreach($w as $k)
{
if(($i%2)==0)){$newstr.=$k.中文第一个。;else{$newstr.=$k.中文第二个;}
$i++;
}
写回原文件


作者: xiaoxian88    时间: 2018-2-5 20:36
Notepad++ 可以实现不打开文件就多文件替换的吧
作者: 木子李    时间: 2018-2-5 20:39
vscode全局匹配替换不行吗?
作者: 风铃    时间: 2018-2-5 22:51
快采纳啊大佬
作者: GeekDuanLian    时间: 2018-2-5 23:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 流河旱树    时间: 2018-2-5 23:01
一个excel就可以搞定了

作者: shc    时间: 2018-2-5 23:04
批量替换我选择String-O-Matic, 太好用了…………
作者: yjsx86    时间: 2018-2-5 23:26
本帖最后由 yjsx86 于 2018-2-5 23:33 编辑

python
  1. s = '''asdasd
  2. "aa" asdasd "bb" asdasd
  3. asdasd
  4. "cc" asdasd "dd" asdasd
  5. asdasd'''

  6. def quot_s_to_d(string):
  7.     L = list(string)
  8.     count = 0
  9.     for i in range(len(L)):
  10.         if L[i] == chr(34):
  11.             count += 1
  12.             if count % 2 != 0:
  13.                 L[i] = chr(8220)
  14.             else:
  15.                 L[i] = chr(8221)
  16.     return ''.join(L)

  17. print(quot_s_to_d(s))

  18. # result
  19. asdasd
  20. “aa” asdasd “bb” asdasd
  21. asdasd
  22. “cc” asdasd “dd” asdasd
  23. asdasd
复制代码

作者: 风铃    时间: 2018-2-6 01:01
GeekDuanLian 发表于 2018-2-5 23:01

你这是什么linux  sed 命令都不全
作者: 风铃    时间: 2018-2-6 01:04
本帖最后由 风铃 于 2018-2-6 01:06 编辑
GeekDuanLian 发表于 2018-2-5 23:01


问题在dz论坛把[code]里面的 " 转义了 导致你复制的命令是错的,
你看我图上的命令输, 或者重新复制一下, 我重发了一个没有code的
作者: GeekDuanLian    时间: 2018-2-6 21:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: GeekDuanLian    时间: 2018-2-6 22:05
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 全球主机交流论坛 (https://91ai.net/) Powered by Discuz! X3.4