我有一个如下所示的字符串
string a= "idh_abcdef_normal_verymuch_ext_v1_20131101000000";
如何找到" _v1"的索引? (小写字母v后跟一个数字(任意长度)。
以下代码无效:(
Console.WriteLine(System.Text.RegularExpressions.Regex.Match(a,"^[v][0-9]$").Index);
有人可以帮助我。
答案 0 :(得分:2)
如果您确定该字符串包含给定的子字符串:
int index = Regex.Match(s, "_v\\d").Index;
,否则
Match match = Regex.Match(s, "_v\\d");
if (match.Success)
index = match.Index;
答案 1 :(得分:1)
正则表达式的问题:
^[v][0-9]$
您是否正在使用模式以v
开头并以数字结束。因此,只有v0
,v2
... v9
等字符串才有效。顺便说一句,您不需要使用[v]
,因为它与v
完全相同。
你可以像这样使用正则表达式:
_v(?=\d)
<强> Working demo 强>
或简单的正则表达式
_v\d
<强> Working demo 强>
答案 2 :(得分:0)
使用:
_v\d+
作为你需要的正则表达式。
答案 3 :(得分:-1)
为什么不进行简单的搜索:
string searchString = "_v1_";
int index = a.IndexOf(searchString);
string sNumber = a.Substring(index + searchString.Length);
long lNumber = long.Parse(sNumber);