0

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

“ABCDED 0000A1.txt PQRSNT 12345”

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

谢谢

4

5 回答 5

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 ();
}
于 2012-12-15T07:12:30.487 回答
0

如果空格是分隔符,则拆分将起作用。如果您使用其他分隔符,您可以根据需要添加

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

filname = "0000A1.txt" 这适用于任何扩展名

于 2012-12-15T07:07:34.400 回答
0

您可以使用c#,regexpattern, match:)

这是代码,插入试试。请给出意见。

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

参考:正则表达式

于 2012-12-15T07:15:43.507 回答
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);
}

希望有帮助。

于 2016-11-10T21:36:01.823 回答
-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”

快乐编码。

于 2012-12-15T06:59:25.783 回答