正则表达式如何匹配中⽂字符?
[01:17.739]Desert Rose Why do you live alone
[01:20.100]沙漠玫瑰为何你独⾃⽣存
[01:24.180]If you are sad,I'll make you leave this life
[01:25.920]若你悲哀,我将使你离开此⽣
[01:30.020]Are you white, blue or bloody red
[01:32.708]你是蓝⾊、⽩⾊、还是如⾎般的红
[01:38.069]All I can see is drowning in cold gray sand
[01:39.159]我所能见的全都淹没在冷灰的沙中
[01:44.937]The winds of time
[01:45.569]时间之风
知道这是什么歌曲吗?:)
中⽂翻译跟英⽂歌词不是在同⼀⾏,使⽤桌⾯歌词显⽰⽐较混乱,⽽且中⽂歌词不是很有必要的,于是想把中⽂歌词去掉了。⼀⾏⼀⾏删是不爽滴,这⾸歌有30分钟之长……正好翻⼀下正则表达式复习⼀下吧。
⽹上搜索到“[\u4e00-\u9fa5]”匹配所有中⽂字符,实际测试结果是把数字、英⽂、中⽂全部匹配了,不知道怎么回事,百度搜索到的匹配中⽂字符⽅法都是这样的。
于是去翻舍得的正则表达式实⽤教程,原来是这么简单! “[[:unicode:]]” (不含分号)就可以匹配中⽂字符了!在此感谢舍得!
很快就处理好了该歌词⽂件,匹配中⽂字符实在是很有⽤啊!
正则表达式如何实现不替换查的匹配⽂本?反向引⽤替换
⼤家都知道,正则表达式能够实现强⼤的查规律⽂字并实现替换的功能。那么,是否能够实现不替换查到的匹配⽂字呢?可能我问题描述得很拗⼝,⼤家看⼀下下⾯的需求例⼦便知:
21.循序渐进22.世俗23.间接经验与直接经验相结合24.教科书25.舒尔茨26.培养⼈27.⼈的全⾯发展
28.⽪亚杰29.德鲁克30.归宿31.民主平等32.因材施教33.从做中学34.钻研教材35.京师同⽂馆36.
间接37.组织形式38.知39.认知40.马卡连柯
上⾯是⼀段教师资格证教育学考试的填空题答案,我想将以上⽂本做成每个答案占⼀⾏的格式,如何操作呢?答案就是要学会使⽤正则表达式的“$1”功能(不含双引号)。这个问题可以使⽤如下正则表达式来解决:
查:(\d+)
替换:\n$1
实现的效果如下:
21.循序渐进
22.世俗
23.间接经验与直接经验相结合
24.教科书
25.舒尔茨
26.培养⼈
27.⼈的全⾯发展
28.⽪亚杰
29.德鲁克
30.归宿
31.民主平等
32.因材施教
33.从做中学
34.钻研教材
35.京师同⽂馆
36.间接
37.组织形式
38.知
39.认知
40.马卡连柯
⼤家看了这个例⼦应该就很清楚我要表达的意思了。在这个例⼦中最主要的功能就是“$1”表达式,这个表达式是什么意思呢?$1就是导⼊第⼀个括号内匹配到的内容。我们第⼀个括号是“(\d+)” ,也就是将查到的数字删除后再次输⼊,相当于没有变化,也就是本⽂开头说的不替换。细⼼的读者就会问:$2、$3⼜是什么意思呢?下⾯再给出⼀个例⼦给⼤家参考:例如匹配1(2)(3)
替换为$1$2$1
替换结果就是232
好了,应该都了解是什么作⽤了吧。$1是第⼀个⼩括号⾥的,$2是第2个⼩括号⾥的,依次类推。
NotePad++中同时查多个关键字
⽐如想查⽂件中包含“u32_t”或者“u16_t”的所有⾏,查⽅式选择“正则表达式查”,可以⽤notepad++输⼊“(u32_t)\s|(u16_t)\s”或者简单输⼊“u32_t|u16_t”查即可,如下图所⽰。
对于想⼀次查多个关键字的情况,只需在查⽬标框中输⼊或关系多个关键字,点击查即
可,“|”号前后⽆空格。
---------------------
正则匹配指定中文汉字作者:Frey_Liu 来源:CSDN
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论