有趣的正则表达式:中英文互换位置

参考文章:
正则表达式替换 高级用法 [转]
Notepad++的正则表达式替换和替换

背景:一位学英语的朋友A,在上计算机辅助翻译的课程的时候,老师给出了一个题目:要求使用正则表达式,将文档里面的英文与对应的中文解释调换位置,于是A便求助于我…

先看一个简单的例子:

apple 苹果
fruit  水果
earth 地球

交换英文和中文的位置,要达到如下的效果:

apple 苹果
fruit  水果
earth 地球

正则表达式:

查找目标:
([A-Za-z]+([一-龥]+)\s+)
替换为:
\2 \1

[^\x00-\x80]+  也可以表达汉字
//以下是中文在前,英文在后的情况
([一-龥]+)\s+([A-Za-z]+)

解释:

notepad++中的正则表达式引擎是单字节的。用[\u4e00-\u9fa5]与[^\x00-\xff]都不能正常的匹配中文。

在java、C#、JS里面编程都可以用“[\u4e00-\u9fa5]”来匹配中文。

\u4e00代表汉字“一”,\u9fa5代表汉字“龥” , 使用:

[一-龥]

正常查找到所有的中文字。这时,中文标点符号没有匹配,加上[\uFF01-\uFF5E],即[!-~],

小结论:notepad++、UltraEdit中匹配中文的正则表达式为:

[一-龥!-~]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值