免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4927 | 回复: 14
打印 上一主题 下一主题

如何删除两个句子中相同的字符串 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-31 17:04 |只看该作者 |倒序浏览
如题:

我有两个文件,一个是英文,另外一个是英文翻译过来的中文。 如下:

英文文件:
mainframe white PaPer
MainfraMe       Buffer-to-Buffer Credits and Their effect on FICON Performance
Having a sufficient number of buffer-to-buffer credits is essential to maintaining maximum FICON®  performance, especially as distance increases.
But how many buffer credits do you need?
In this paper, Brocade®  provides

中文文件:
大型机白皮书
大型机  缓冲区到缓冲区信用及其对 FICON 性能的影响
具有足够数量的缓冲区到缓冲区信用对于保持最高 FICON® 性能至关重要,尤其是在距离增加时。
但是,您需要多少缓冲区信用?
在本白皮书中,Brocade® 提供了

我现在希望同时在两个文件中删除红色标记的字符串。

自己尝试使用\p{Han}去匹配中文里面非中文字符,但是没有成功。求大拿们指导

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2013-01-31 17:36 |只看该作者
花20块请一个初中的学生帮你搞定.

论坛徽章:
0
3 [报告]
发表于 2013-01-31 17:40 |只看该作者
回复 2# q1208c

关键没有找到那个人啊


   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
4 [报告]
发表于 2013-01-31 17:43 |只看该作者
回复 3# LOSTKILLER

如果只想用程序处理, 可以把两个文件换个位置.

由于第二个文件里全是 中文, 所以, 你只要取出连续的 [a-zA-Z] 就可以做为一个变量存起来, 然后在 第一个文件中查找这个字符串, 这样可能还有希望. 否则, 你用英文在中文里找, 不知道是递归多少遍了.
   

论坛徽章:
0
5 [报告]
发表于 2013-01-31 17:47 |只看该作者
回复 4# q1208c


非中文字符不一定就是英文字母,还有数字或者是符号~~~~

开始尝试\p{Han}去匹配,用得下面这段代码,还是不成功。不知道为什么正则表达式没有匹配上。


#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use encoding "utf-8";

open(FILE1, $ARGV[0]);
while (<FILE1>)
{
s/\p{Han}/xx/g;
print;
}


   

论坛徽章:
0
6 [报告]
发表于 2013-01-31 18:16 |只看该作者
回复 4# q1208c

这个符号®你是提取不到的。


   

论坛徽章:
0
7 [报告]
发表于 2013-01-31 18:19 |只看该作者
1、先把中文中需要替换的单词提出,放到一个hash里。
2、提取英文中所有以空格分隔的单词,逐个比对hash,如果hash中 已经有以此单词为key的条目,就意味着这个单词是中文中出现过的,需要删除。

方法比较笨,有好方法的请指点。

论坛徽章:
0
8 [报告]
发表于 2013-01-31 18:22 |只看该作者
LOSTKILLER 发表于 2013-01-31 17:47
回复 4# q1208c


你这是作甚?把所有的中文替换成xx?

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
9 [报告]
发表于 2013-01-31 18:25 |只看该作者
不知道:
  1. #!/usr/bin/perl
  2. use 5.016;

  3. my $h = '大型机白皮书
  4. 大型机  缓冲区到缓冲区信用及其对 FICON 性能的影响
  5. 具有足够数量的缓冲区到缓冲区信用对于保持最高 FICON® 性能至关重要,尤其是在距离增加时。
  6. 但是,您需要多少缓冲区信用?
  7. 在本白皮书中,Brocade® 提供了';
  8. my $e = 'mainframe white PaPer
  9. MainfraMe       Buffer-to-Buffer Credits and Their effect on FICON Performance
  10. Having a sufficient number of buffer-to-buffer credits is essential to maintaining maximum FICON®  performance, especially as distance increases.
  11. But how many buffer credits do you need?
  12. In this paper, Brocade®  provides';

  13. my @d;
  14. $h =~ s/\s*([A-Z]\S+\s+)(?{push @d,$1})//g;
  15. my $d = join '|', @d;
  16. $e =~ s/\s+$d/ /g;
  17. say $e;
  18. say $h;
复制代码

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
10 [报告]
发表于 2013-01-31 20:47 |只看该作者
本帖最后由 mcshell 于 2013-01-31 20:53 编辑
  1. use strict;
  2. use warnings;
  3. use encoding "utf8";
  4. while(<DATA>){
  5.    s/(\s*[A-Za-z]+[\p{S}\p{N}\p{C}\p{M}]+\s+|\b[A-Z]+\b)//g;
  6.     print ;
  7. }
  8. __DATA__
  9. 大型机白皮书
  10. 大型机  缓冲区到缓冲区信用及其对 FICON 性能的影响
  11. 具有足够数量的缓冲区到缓冲区信用对于保持最高 FICON&reg; ; 性能至关重要,尤其是在距离加时。
  12. 但是,您需要多少缓冲区信用?
  13. 在本白皮书中,Brocade&reg;  提供了
  14. mainframe white PaPer
  15. MainfraMe       Buffer-to-Buffer Credits and Their effect on FICON Performance
  16. Having a sufficient number of buffer-to-buffer credits is essential to maintaining maximum FICON&reg; ;  performance, especially as distance increases.
  17. But how many buffer credits do you need?
  18. In this paper, Brocade&reg; ;  provides
复制代码
回复 1# LOSTKILLER


    求解 为啥圈圈商标放论坛编辑器里就转成&reg  
@rubyish怎么打出来的  求学习{:3_200:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP