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

c#regexおよびpattern、を使用できます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 に答える
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 に答える
-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 に答える