字母v的正则表达式,前面是下划线…,后面是任意长度的数字
本文关键字:任意长 数字 前面 字母 下划线 正则表达式 | 更新日期: 2023-09-27 18:16:39
我有一个像下面这样的字符串
string a= "idh_abcdef_normal_verymuch_ext_v1_20131101000000";
如何找到"_v1"的索引(小写字母v后面跟着一个数字(任意长度)。
下面的代码不能工作:(
Console.WriteLine(System.Text.RegularExpressions.Regex.Match(a,"^[v][0-9]$").Index);
有人能帮我一下吗
如果您确定字符串包含给定的子字符串:
int index = Regex.Match(s, "_v''d").Index;
否则Match match = Regex.Match(s, "_v''d");
if (match.Success)
index = match.Index;
您的正则表达式的问题:
^[v][0-9]$
表示您正在使用以v
开始并以数字结束的模式。所以,只有像v0
v2
这样的字符串…v9
是有效的。顺便说一句,你不需要使用[v]
,因为它与v
完全相同。
你可以像这样使用一个正则表达式:
_v(?='d)
演示工作或者一个简单的正则表达式
_v'd
演示工作使用说明:
_v'd+
为什么不做一个简单的搜索呢:
string searchString = "_v1_";
int index = a.IndexOf(searchString);
string sNumber = a.Substring(index + searchString.Length);
long lNumber = long.Parse(sNumber);