正则替换方法请教

随便聊聊 · 633 次浏览
dalou 创建于 14天19小时前

如图,如何替换掉字符串中除最后一个 “|” 

输入 1|2|3|4    获得  123|4


回复内容
CL 14天19小时前
#1

是完全一致都是这样的格式,还是存在什么变化? 可以拆分成列表以后,把前面的合并成文本,再加上竖线和最后一个。

dalou 回复 CL 14天19小时前 :

不一致,能确定的是 “|” 最少有一个,我的目标也是只要留下一个 “|”

即列表中的每一项为: “标题|值”     要排除每项标题中的 “|” 影响

目前我是用每个来处理的,感觉有点繁琐,想看看能不能用 select来处理



CL 回复 dalou 14天18小时前 :


咿呀杀杀 14天18小时前
#2

$= Regex.Replace({item}, @"\|(?=.*\|)", "")


dalou 回复 咿呀杀杀 14天18小时前 :

 感谢!请问@在里面起什么作用呢,不加@也能匹配到,但是会有波浪号下标提示


咿呀杀杀 回复 dalou 14天18小时前 :

在普通的双引号字符串 “...” 中,你要用两个反斜扛来表示一个反斜扛字符。但在逐字字符串 @"..." 中,用一个反斜扛即可,基本上正则表达式本身是什么就写什么,不用额外考虑多一层转义规则。

比如,正则表达式 \d+\t\d+ , 在普通字符串需要写成 "\\d+\\t\\d+" ,但用逐字字符串表示,写成 @"\d+\t\d+" 即可。

dalou 回复 咿呀杀杀 14天18小时前 :

原来是这样,确实要方便很多,感谢大佬!

回复主贴