如何使用正则表达式从以下提取特定字符串?最好的方法

时间:2011-02-23 05:05:32

标签: c# regex

我有以下类型的字符串

/asdfd-dfsdf-sadfdfsdf-safdsfok-785452145x/dshfkjsd-sdfsd-sdfsdfsn-sfsdfe-jsdfdss/9?sdf=sdfsdf32d-0sdf8d-49sfe-asdf7-4fsfs32dd73880

其中我只想提取785452145x

最好的方法是什么?我使用C#2.0

4 个答案:

答案 0 :(得分:1)

// setup the input data
string inputString = "/asdfd...";

// pull out string from beginning to second slash
// firstPart = "/asdfd...fok-785452145x/"
string firstPart = inputString.Substring(0, inputString.IndexOf("/", 1));

// grab last data element after the last hyphen
// lastElement = "785452145x";
string lastElement = firstPart.Substring(firstPart.LastIndexOf("-") + 1);

// do something with lastElement...

答案 1 :(得分:0)

如果您尝试匹配字符串中的该字符系列,则此正则表达式会将其放在第一个匹配组中。

/[a-z]+-[a-z]+-[a-z]+-[a-z]+-([0-9a-z]+).*

如果您尝试匹配该字符串,则不需要正则表达式。

答案 2 :(得分:0)

由于您需要特定的字符串,因此不需要正则表达式。如果您只是想知道大字符串是否包含您要查找的字符串,请尝试

inputString.Contains("785452145x");

这会给你一个bool,表明是否找到了字符串。

答案 3 :(得分:0)

你要求正则表达式......

string answer = Regex.Match(input, @"^/.+-(.+)/.+").Groups[1].Value;