使用Regex从字符串中提取子字符串

Nel*_*eis 2 c# regex

想象一下,用户正在多台计算机中插入字符串.

在一台计算机上,配置中的模式将提取该字符串的一些字符,比如位置4到5.在另一台计算机上,提取模式将返回其他字符,例如,字符串的最后3个位置.

这些配置(正则表达式模式)对于每台计算机都是不同的,管理员可以进行更改,而无需更改源代码.

一些例子:

         Original_String       Return_Value
User1 -  abcd78defg123         78
User2 -  abcd78defg123         78g1
User3 -  mm127788abcd          12
User4 -  123456pp12asd         ppsd
Run Code Online (Sandbox Code Playgroud)

可以用正则表达式完成吗?谢谢.

Mar*_*ell 7

为什么要使用正则表达式呢?出什么问题了:

string foo = s.Substring(4,2);
string bar = s.Substring(s.Length-3,3);
Run Code Online (Sandbox Code Playgroud)

(你可以把它们包起来做一些边界 - 检查长度很容易)

如果你真的想要,你可以把它包起来Func<string,string>放在某个地方 - 不确定我会打扰,但是:

Func<string, string> get4and5 = s => s.Substring(4, 2);
Func<string,string> getLast3 = s => s.Substring(s.Length - 3, 3);
string value = "abcd78defg123";
string foo = getLast3(value);
string bar = get4and5(value);
Run Code Online (Sandbox Code Playgroud)