您的位置:首页 > 其它

正则表达式如何实现不替换查找的匹配文本?

2017-05-05 10:29 706 查看
大家都知道,正则表达式能够实现强大的查找规律文字并实现替换的功能。那么,是否能够实现不替换查找到的匹配文字呢?可能我问题描述得很拗口,大家看一下下面的需求例子便知:

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个小括号里的,依次类推。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: