文本批量替换的正则表达式

本文详细介绍了正则表达式在文本批量替换中的应用,提供了多个具体的替换示例,如删除特定字符、调整文本顺序、处理图层名称格式等,帮助读者理解和掌握正则表达式的使用技巧和常见操作。
摘要由CSDN通过智能技术生成

1、去掉第三世第十三世之类的前缀:
^(第)(\w{1,})(世)($|\W|\s)

2、去掉行首名字加公的“公”字
^(\w)(公,)

3、去掉某某公之子的“公”字
(\W\w.?)(公)(\w子\W)
替换为:\1\3

4、把“名字+字什么号什么+某某之子”调为“名字+某之子”的顺序
查找:(abc\w.*\W)(\w.*\W)(\w.?公\w子)(\W)
替换为:\1\3,\2

5、去掉“名字+,+见后”
^(\w{1,}\,)(见后)

6、替换适前后斜杠正则表达式
(/)(\w{0,})(适)(\w{0,})(/)
\2\3\4

7、删掉见后无用记录行
^(\w{1,})(,)(见后)(\W|)

8、删除空行
^(\s*)\r\n

9、提取某某子放名字后
^(\w{1,2}\W)(\w.*)(\W)(\w{1,3}子,)
\1\4\2\3



文本内容为:
境界面(BOUNT)  
兴趣面(POINT)  
兴趣点(POIPT)  
交通线(TRALK)

其中“境界面”、“兴趣面”等中文部分为图层名称,BOUNT、POINT等英文部分为图层别名。
希望通过替换后的文本内容为:
*BOUNT,境界面,面  
*POINT,兴趣面,面  
*POIPT,兴趣点,点  
*TRALK,交通线,线  

即,将原来的“中文名(英文名)”的格式修改为“*英文名,中文名,图层类型”的格式,且图层类型来源为中文图层名的最后一个字。
使用的正则表达式为:
^(.+?)([点线面]{1})(([A-Z]+))
分组打包:
第一组:^(.+?)
第二组:([点线面]{1})
第三组:(([A-Z]+))

表达式说明:
    “^”匹配输入字符串的开始位置,即本例中的一整行文本;
    第一个括号中的内容“.+?”匹配除换行符“\n”之外的任意一个字符,如本例中的“境”部分;
    第二个括号中的内容匹配的是在“点、线、面”集合中的一个字符,如本例中的“面”;
    第三个括号中的内容匹配的是大写的A-Z字符部分。
    
被替换为:
\3,\1\2,\2  
说明:$后跟序号N(如:$3),表示取到结果集中的第N条记录。其中第0条记录为完整的结果本身,第1条起为表达式括号中的内容。
调整组序:
\3 公式得到的第三组内容调整到最前
\1\2 公式得到的第一组内容和第二组内容其后
\2 公式得到的第二组内容在最后
注意:\3,和\2, 后边的标点符号是在原文后加逗号。而原文中的()没有保留。


等价是等同于的意思,表示同样的功能,用不同符号来书写。

?,*,+,\d,\w 都是等价字符
  ?等价于匹配长度{0,1}
  *等价于匹配长度{0,}?
  +等价于匹配长度{1,}
  \d等价于[0-9]

\D等价于[^0-9]
  \w等价于[A-Za-z_0-9]

\W等价于[^A-Za-z_0-9]。

常用运算符与表达式:
  ^ 开始
  () 域段
  [] 包含,默认是一个字符长度
  [^] 不包含,默认是一个字符长度
  {n,m} 匹配长度?
  . 任何单个字符(\. 字符点)
  | 或
  \ 转义
  $ 结尾
  [A-Z] 26个大写字母
  [a-z] 26个小写字母
  [0-9] 0至9数字


我的手机 2018-02-07 16:29:13
常用运算符与表达式:
  ^ 开始
  () 域段
  [] 包含,默认是一个字符长度
  [^] 不包含,默认是一个字符长度
  {n,m} 匹配长度?
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值