有谁会建议使用一个正则表达式来操作结束的行:
0,04-721-0克-00033非盟
并将该字符串转换为:
0 ,04,721,0G,00033,非盟
(将字符串中最后一个逗号后的所有破折号替换为逗号)
请记住,字符串前面的部分可能有破折号和逗号,因此我确定的是,我想要操作的行的部分是以行中的最后逗号开头的字符串,以EOL结尾,并且具有,XX-XXX-XXXXX-XX的结构。
有什么建议吗?
谢谢。
发布于 2014-01-07 03:46:26
匹配:,(?=[^,]*$)(\w{2})-(\w{3})-(\w{2})-(\w{5})-(\w{2})$
替换为:,$1,$2,$3,$4,$5
它的工作原理:
,(?=[^,]*$)选择行的最后一个, (字面意思是:在行尾之前只跟着其他,的, )。(\w{2})-(\w{3})-(\w{2})-(\w{5})-(\w{2})匹配。$确保行的末尾已经到达然后你就重写:
,-分隔。发布于 2014-01-07 03:45:27
这个模式(试验替换)会做你想做的事吗?
-(?=[^,]{1,15}$)用,替换
检查连字符,如果有1-15个字符从左到尾没有逗号使用向前看,如果是用逗号代替。
由于没有指定语言,用于多行替换,您可能希望为多行添加M-改性剂,为JS添加用于全局的G-改性剂 (用修饰符进行测试)。
https://stackoverflow.com/questions/20963463
复制相似问题