regex - 替换除指定字符的最后一个实例以外的所有实例

标签 regex vb.net

如果我有一个像
10,000kg crane,21

我应该如何去除除最后一个逗号以外的所有逗号
10000kg crane,21

我认为这是一个正则表达式问题。

最佳答案

另一种方法的执行速度可能比RegEx解决方案快得多:

Dim s As String = "10,000kg crane,21"
Dim result As String = New StringBuilder(s).Replace(",", String.Empty, 0,
    s.LastIndexOf(","c)).ToString()

要点是它将用第一个字符与最后一个“,”的索引之间的空字符串替换所有出现的“,”。

我进行了一些基准测试,每次运行the proposed RegEx solution 1,000,000次。在我的笔记本电脑上,无需编译RegEx,此解决方案的速度大约快七(7)倍。如果您确实编译RegEx,它的速度仍然大约是以前的两倍。

关于regex - 替换除指定字符的最后一个实例以外的所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12116586/

相关文章:

javascript - 在特殊标签之外使用 javascript 正则表达式替换?

mysql - vb.net组合框仅显示1条记录

.net - VB.net不一致的线程 sleep 定时器

regex - 在文件和输出文件名中搜索具有特定文本的行(文件命令和 grep)

c# - 具有缓冲区和线程安全的 FIFO/QUEUE

vb.net - 有什么方法可以基于枚举实例化一个新类吗?

vb.net - 在 VB.NET 应用程序中集成 PSR

regex - 在 sed 中使用管道(或)

PHP匹配正则表达式中的多个完整单词

jquery - Javascript,从每个循环中获取唯一值或按 value.id 进行分组