正则表达式 VB.Net 正则表达式.替换 [英] Regex VB.Net Regex.Replace

查看:78
本文介绍了正则表达式 VB.Net 正则表达式.替换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试执行一个简单的正则表达式查找和替换,如下所述,在字符串中的一些数字之后添加一个制表符.

I'm trying to perform a simple regex find and replace, adding a tab into the string after some digits as outlined below.

来自

a/users/12345/badges

a/users/12345   /badges

我正在使用以下内容:

s = regex.replace(s, "(a\/users\/\d*)("a\/users\/\d*\t)", $1 $2")

但我显然做错了什么.

我哪里出错了,我知道这是一个愚蠢的错误,但我们将不胜感激.

Where am I going wrong, I know its a stupid mistake but help would be gratefully received.

VBVirg

推荐答案

您可以通过仅向前看就能找到最后一个 / 之前的位置:

You can achieve that with a mere look-ahead that will find the position right before the last /:

Dim s As String = Regex.Replace("a/users/12345/badges", "(?=/[^/]*$)", vbTab)

输出:

a/users/12345   /badges

参见 IDEONE 演示

或者,您可以使用 LastIndexOf o 和 Insert:

Or, you can just use LastIndexOf owith Insert:

Dim str2 As String
Dim str As String = "a/users/12345/badges"
Dim idx = str.LastIndexOf("/")
If idx > 0 Then
   str2 = str.Insert(idx, vbTab)
End If

这篇关于正则表达式 VB.Net 正则表达式.替换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆