如何在每个文件扩展名后修剪c#中的字符串
我有一系列附件,如下所示: “如何在每个文件扩展名后修剪c#中的字符串,c#,visual-studio-2012,C#,Visual Studio 2012,我有一系列附件,如下所示: “” 我用了这个方法: AttachmentName = System.Text.RegularExpressions.Regex.Replace(AttachmentName, @"<(.|\n)*?>", "String.Empty"); 然后一个接一个地把它们显示到控制中 然后我只需要字符串的URL,比如 "" 及 “” 如何才能做到这一点如果没有其他明确的方法,您可以使用正则表达式提取文件名。你能试试下面的代码吗 using System; u
”
我用了这个方法:
AttachmentName = System.Text.RegularExpressions.Regex.Replace(AttachmentName, @"<(.|\n)*?>", "String.Empty");
然后一个接一个地把它们显示到控制中
然后我只需要字符串的URL,比如
""
及
“”
如何才能做到这一点如果没有其他明确的方法,您可以使用正则表达式提取文件名。你能试试下面的代码吗
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Text.RegularExpressions;
namespace ExtensionExtractingTest
{
class Program
{
static void Main(string[] args)
{
string fileNames = "test.docxtest2.txttest3.pdftest.test.xlxtest.docxtest2.txttest3.pdftest.test.xlxtest.docxtest2.txttest3.pdftest.test.xlxourtest.txtnewtest.pdfstackoverflow.pdf";
//Add your extensions to regex definition
Regex fileNameMatchRegex = new Regex(@"[a-zA-Z0-9]*(\.txt|\.pdf|\.docx|\.txt|\.xlx)", RegexOptions.IgnoreCase);
MatchCollection matchResult = fileNameMatchRegex.Matches(fileNames);
List<string> fileNamesList = new List<string>();
foreach (Match item in matchResult)
{
fileNamesList.Add(item.Value);
}
fileNamesList = fileNamesList.Distinct().ToList();
Console.WriteLine(string.Join(";", fileNamesList));
}
}
}
使用系统;
使用System.Collections.Generic;
使用系统文本;
使用System.Linq;
使用System.Text.RegularExpressions;
命名空间扩展提取测试
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串文件名=“test.docxtest2.txttest3.pdftest.test.xlxtest.docxtest2.txttest3.pdftest.test.xlxtest.docxtest2.txttest3.pdftest.test.xlxourtest.txtnewtest.pdfstackoverflow.pdf”;
//将扩展添加到regex定义中
Regex fileNameMatchRegex=newregex(@“[a-zA-Z0-9]*(\.txt\.pdf\.docx\.txt\.xlx)”,RegexOptions.IgnoreCase);
MatchCollection matchResult=fileNameMatchRegex.Matches(文件名);
List fileNamesList=新列表();
foreach(匹配结果中的匹配项)
{
fileNamesList.Add(item.Value);
}
fileNamesList=fileNamesList.Distinct().ToList();
Console.WriteLine(string.Join(“;”,fileNamesList));
}
}
}
这里有一个有效的例子
PS:请记住,你必须知道你的文件扩展名,或者你必须预测文件扩展名长度3或4,这将是一个痛苦的字符串解析操作
希望这对您有所帮助如果您没有其他明确的方法,可以使用正则表达式提取文件名。你能试试下面的代码吗
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Text.RegularExpressions;
namespace ExtensionExtractingTest
{
class Program
{
static void Main(string[] args)
{
string fileNames = "test.docxtest2.txttest3.pdftest.test.xlxtest.docxtest2.txttest3.pdftest.test.xlxtest.docxtest2.txttest3.pdftest.test.xlxourtest.txtnewtest.pdfstackoverflow.pdf";
//Add your extensions to regex definition
Regex fileNameMatchRegex = new Regex(@"[a-zA-Z0-9]*(\.txt|\.pdf|\.docx|\.txt|\.xlx)", RegexOptions.IgnoreCase);
MatchCollection matchResult = fileNameMatchRegex.Matches(fileNames);
List<string> fileNamesList = new List<string>();
foreach (Match item in matchResult)
{
fileNamesList.Add(item.Value);
}
fileNamesList = fileNamesList.Distinct().ToList();
Console.WriteLine(string.Join(";", fileNamesList));
}
}
}
使用系统;
使用System.Collections.Generic;
使用系统文本;
使用System.Linq;
使用System.Text.RegularExpressions;
命名空间扩展提取测试
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串文件名=“test.docxtest2.txttest3.pdftest.test.xlxtest.docxtest2.txttest3.pdftest.test.xlxtest.docxtest2.txttest3.pdftest.test.xlxourtest.txtnewtest.pdfstackoverflow.pdf”;
//将扩展添加到regex定义中
Regex fileNameMatchRegex=newregex(@“[a-zA-Z0-9]*(\.txt\.pdf\.docx\.txt\.xlx)”,RegexOptions.IgnoreCase);
MatchCollection matchResult=fileNameMatchRegex.Matches(文件名);
List fileNamesList=新列表();
foreach(匹配结果中的匹配项)
{
fileNamesList.Add(item.Value);
}
fileNamesList=fileNamesList.Distinct().ToList();
Console.WriteLine(string.Join(“;”,fileNamesList));
}
}
}
这里有一个有效的例子
PS:请记住,你必须知道你的文件扩展名,或者你必须预测文件扩展名长度3或4,这将是一个痛苦的字符串解析操作
希望这有帮助
我是这样得到的
AttachmentName=Regex.Replace(AttachmentName,@“”,string.Empty)代码>
这是你的问题。您有有效的分隔符,但由于某种原因将其删除。将分隔符保留在那里,然后使用String.Split
根据该分隔符拆分它们
或将HTML替换为分隔符而不是空字符串:
AttachmentName = Regex.Replace(AttachmentName, @"<(.|\n)*?>", "|");
我是这样得到的
AttachmentName=Regex.Replace(AttachmentName,@“”,string.Empty)代码>
这是你的问题。您有有效的分隔符,但由于某种原因将其删除。将分隔符保留在那里,然后使用String.Split
根据该分隔符拆分它们
或将HTML替换为分隔符而不是空字符串:
AttachmentName = Regex.Replace(AttachmentName, @"<(.|\n)*?>", "|");
由于文件名之间没有分隔符,扩展名的长度也不一致,因此要做到这一点将非常困难。如何获取原始字符串,是否可以在文件名之间放置分隔符(如逗号或文件名中不可接受的其他内容);否则,正如CoderHxr所暗示的,这将是一个泥潭。如果可以删除VAL,可以使用Split()然后使用DataSource将它们分配给控件。我不是正则表达式的kenner,但可以用替换“string.Empty”或者一些类似的方法会给你一个定界,这会让你更容易。你所有的文件名都以test开头吗?你能在运行AttachmentName=System.Text.RegularExpressions.Regex.Replace(AttachmentName,@“”,string.Empty)之前添加数据的外观吗;在取出delimeters之前查看原始数据是很有用的,因为文件名之间没有分隔符,扩展名的长度也不一致,所以很难做到这一点。如何获取原始字符串,是否可以在文件名之间放置分隔符(如逗号或文件名中不可接受的其他内容);否则,正如CoderHxr所暗示的,这将是一个泥潭。如果可以删除VAL,可以使用Split()然后使用DataSource将它们分配给控件。我不是正则表达式的kenner,但可以用替换“string.Empty”或者一些类似的方法会给你一个定界,这会让你更容易。你所有的文件名都以test开头吗?你能在运行AttachmentName=System.Text.RegularExpressions.Regex.Replace(AttachmentName,@“”,string.Empty)之前添加数据的外观吗;在取出数据之前查看原始数据会很有用delimeters@Revenant_01我不知道-从HTML中删除了什么?这是原始字符串:
非常漂亮啊。删除标记后:SharePoint\u Health Check Assessment.docxTest Workflow.docxYou