[英]regex to match everything except character
我有一个包含以下内容的有效负载:
。 xMB2
我正在寻找提取patrick-test-file.txt的文件名
我可以通过使用它来接近,但是它继续包含所有内容(包括ascii字符)
[\\\\](.*?)x�SMB2
结果是: 为捕获组。
我如何匹配文件名中的字符(可以是可变长度的任何内容,并且可以包含字母数字字符)? 纯正则表达式可能吗?
任何帮助深表感谢。
有时,您只是无法执行与语言无关的正则表达式来完成某些任务。 有时(通常)执行一系列字符串函数的性能更高。
我个人不会接受任何具有硬编码值的解决方案,例如x SMB2
。
如果只想使用正则表达式,则可以首先选择File-Name部分,如下所示: (([-\\w\\d.\\\\]+)[^-\\w\\d.\\\\]?)+
,然后继续将[^-\\w\\d.\\\\]
替换为""
。
老实说,鉴于细节有限,最佳功能如下:
var fileName = "\patrick-test-file.txt";
但是开个玩笑,而且细节有限,您最好的选择是做几个字符串函数:
var yuckyString = @"����\�p�a�t�r�i�c�k�-�t�e�s�t�-�f�i�l�e�.�t�x�t������x�SMB2";
var fileNameArea = yuckyString.Split(new[] { "��" }, StringSplitOptions.RemoveEmptyEntries)[0];
var fileName = fileNameArea.Replace("�", "");
当然,没有列出语言,所以我正在使用C#。 同样,如果那些特殊字符存在不规则之处,答案也会改变。 在信息有限的情况下,模式似乎很清晰。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.