检索包含特定子字符串C#的字符串

时间:2012-12-15 06:53:45

标签: c# regex string substring

我有一个字符串格式的输出,如下所示:

“ABCDED 0000A1.txt PQRSNT 12345”

我想在上面的字符串中修复具有.txt的子字符串。例如对于上面,它应该返回0000A1.txt。

由于

5 个答案:

答案 0 :(得分:1)

您可以将字符串拆分为空格边界,就像它已经被建议一样,或者重复匹配相同的正则表达式,如下所示:

var input = "ABCDED 0000A1.txt PQRSNT 12345 THE.txt FOO";
var match = Regex.Match (input, @"\b([\w\d]+\.txt)\b");
while (match.Success) {
    Console.WriteLine ("TEST: {0}", match.Value);
    match = match.NextMatch ();
}

答案 1 :(得分:0)

如果空格是分隔符,则分割将起作用。如果你使用oter分隔符,你可以根据需要添加

 string input = "ABCDED 0000A1.txt PQRSNT 12345";
 string filename = input.Split(' ').FirstOrDefault(f => System.IO.Path.HasExtension(f));

filname =“0000A1.txt”,这适用于任何扩展程序

答案 2 :(得分:0)

您可以使用c#regexpatternmatch:)

这是代码,插上试试。请评论。

string test = "afdkljfljalf dkfjd.txt lkjdfjdl"; 
string ffile = Regex.Match(test, @"\([a-z0-9])+.txt").Groups[1].Value;
Console.WriteLine(ffile);

Reference: regexp

答案 3 :(得分:0)

我做了类似的事情:

string subString = "";
char period = '.';
char[] chArString;
int iSubStrIndex = 0;

if (myString != null)
{
    chArString = new char[myString.Length];
    chArString = myString.ToCharArray();

    for (int i = 0; i < myString.Length; i ++)
    {
        if (chArString[i] == period)
            iSubStrIndex = i;
    }

    substring = myString.Substring(iSubStrIndex);
}

希望有所帮助。

答案 4 :(得分:-1)

首先使用

将字符串拆分为数组
char[] whitespace = new char[] { ' ', '\t' };
string[] ssizes = myStr.Split(whitespace);

然后在数组中找到.txt ...

// Find first element starting with .txt.
//
string value1 = Array.Find(array1,
    element => element.Contains(".txt", StringComparison.Ordinal));

现在你的value1将有“0000A1.txt”

快乐的编码。