次のような文字列形式で出力しています。
「ABCDED 0000A1.txt PQRSNT 12345」
上記の文字列に .txt を持つ部分文字列を取得したい。例: 上記の場合、0000A1.txt が返されます。
ありがとう
すでに提案されているように空白の境界で文字列を分割するか、次のように同じ正規表現に繰り返し一致させることができます。
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 ();
}
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);
私はこのようなことをしました:
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);
}
それが役立つことを願っています。
スペースが区切り記号である場合、分割は機能します。他のセパレータを使用する場合は、必要に応じて追加できます
string input = "ABCDED 0000A1.txt PQRSNT 12345";
string filename = input.Split(' ').FirstOrDefault(f => System.IO.Path.HasExtension(f));
filname = "0000A1.txt" これはどの拡張子でも機能します
最初に文字列を配列に分割します
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」が含まれます
ハッピーコーディング。