【发布时间】:2013-06-14 13:57:58
【问题描述】:
使用Regex.Replace(mystring, @"[^MV:0-9]", "") 将删除任何不是M、V、: 或0-9 的字母(也可以使用\d)问题是我想删除任何不是@ 987654325@ 然后是数字。
我需要用任何东西替换任何不是这种模式的东西:
Starting String | Wanted Result
---------------------------------------------------------
sdhfuiosdhusdhMV:1234567890sdfahuosdho | MV:1234567890
MV:2138911230989hdsafh89ash32893h8u098 | MV:2138911230989
809308ej0efj0934jf0934jf4fj84j8904jf09 | Null
123MV:1234321234mnnnio234324234njiojh3 | MV:1234321234
mdfmsdfuiovvvajio123oij213432ofjoi32mm | Null
但我所拥有的是:
Starting String | Returned Result
---------------------------------------------------------
sdhfuiosdhusdhMV:1234567890sdfahuosdho | MV:1234567890
MV:2138911230989hdsafh89ash32893h8u098 | MV:213891123098989328938098
809308ej0efj0934jf0934jf4fj84j8904jf09 | 809308009340934484890409
123MV:1234321234mnnnio234324234njiojh3 | 123MV:12343212342343242343
mdfmsdfuiovvvajio123oij213432ofjoi32mm | mmvvv1232134232mm
即使有一个正则表达式模式,我最好使用类似以下的东西:
if (Regex.IsMatch(strMyString, @"MV:"))
{
string[] strarMyString = Regex.Split(strMyString, @"MV:");
string[] strarNumbersAfterMV = Regex.Split(strarMyString[1], @"[^\d]");
string WhatIWant = strarNumbersAfterMV[0]
}
如果我选择后者,是否会有:
string[] strarNumbersAfterMV = Regex.Split(strarMyString[1], @"[^\d]");
只在第一次更改数字时进行拆分? (它总是以MV: 后面的数字开头)
【问题讨论】:
标签: c# .net regex regex-negation