我有一个字符串格式的输出,如下所示:
“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 ();
}
如果空格是分隔符,则拆分将起作用。如果您使用其他分隔符,您可以根据需要添加
string input = "ABCDED 0000A1.txt PQRSNT 12345";
string filename = input.Split(' ').FirstOrDefault(f => System.IO.Path.HasExtension(f));
filname = "0000A1.txt" 这适用于任何扩展名
您可以使用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);
}
希望有帮助。
首先使用将字符串拆分为数组
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”
快乐编码。