REGEX搜索并保留特定字符

时间:2014-04-23 11:09:16

标签: regex

我有以下格式的数百个参考文献

HCVSAM0123BK
c35UNI0321RS
scruni0321

XXXXXX ZZZZ WW 6个字符4个数字2个字符

我想保留前6个字符后的4位数字,但在某些情况下,它不会包含最后2个字符

我的目标是只获得ZZZZ(4位数)

例如:从HCVSAM0123BK到0123

谢谢

2 个答案:

答案 0 :(得分:3)

您可以匹配以下内容:

^\w{6}(\d+)(\w{2})?$

并且第一个捕获的组\1就是您想要的。

演示:http://regex101.com/r/qT0lY8

回答udpated问题:

^(?!\d+$)\w{6}(\d+)(\w{2})?$

(?!\d+$)是一个负面展示,如果该行仅为数字,则会失败,而\w代表[0-9a-zA-Z_]

答案 1 :(得分:1)

搜索:^.{6}(.{4}).*

并替换为:\1

演示:http://regex101.com/r/kZ7dS8

输出:

0123 
0321 
0321

使用分支重置:

搜索:(?|.*(\d{4}).*)

并替换为:\1