Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 特定模式的正则表达式提取_C#_.net_Regex_C# 4.0 - Fatal编程技术网

C# 特定模式的正则表达式提取

C# 特定模式的正则表达式提取,c#,.net,regex,c#-4.0,C#,.net,Regex,C# 4.0,我有以下格式的字符串。我有以下三种情况: 场景1: "\\hjsschjsn\Bunong.PU2.PV/-56Noogg.BSC"; "\\adajsschjsn\Bcscx.sdjhs\AHHJogg.BSC"; "aasjkankn\\adajsschjsn\Bcscx.sdjhs\AHHJogg.BSC\djkhakdjhjkj"; 提取应该一直到“.BSC”,“.BSC”将始终在原始字符串中。另外,“\”和“\”也会出现,但文本会发生变化 我必须省略中间部分,我的输出应该是

我有以下格式的字符串。我有以下三种情况:

场景1:

"\\hjsschjsn\Bunong.PU2.PV/-56Noogg.BSC"; 
"\\adajsschjsn\Bcscx.sdjhs\AHHJogg.BSC"; 
"aasjkankn\\adajsschjsn\Bcscx.sdjhs\AHHJogg.BSC\djkhakdjhjkj"; 
提取应该一直到“.BSC”“.BSC”将始终在原始字符串中。另外,“\”“\”也会出现,但文本会发生变化

我必须省略中间部分,我的输出应该是:

"\\hjsschjsn\-56Noogg.BSC"; 
"\\adajsschjsn\AHHJogg.BSC"; 
场景2:

"\\hjsschjsn\Bunong.PU2.PV/-56Noogg.BSC"; 
"\\adajsschjsn\Bcscx.sdjhs\AHHJogg.BSC"; 
"aasjkankn\\adajsschjsn\Bcscx.sdjhs\AHHJogg.BSC\djkhakdjhjkj"; 
输出应为:

"\\hjsschjsn\-56Noogg.BSC"; 
"\\adajsschjsn\AHHJogg.BSC"; 
场景3:

"\\hjsschjsn\Bunong.PU2.PV/-56Noogg.BSC"; 
"\\adajsschjsn\Bcscx.sdjhs\AHHJogg.BSC"; 
"aasjkankn\\adajsschjsn\Bcscx.sdjhs\AHHJogg.BSC\djkhakdjhjkj"; 
输出应为:

"\\adajsschjsn\AHHJogg.BSC"; 
以下是我尝试过的:

 string text = "\\\\hjsschjsn\Bunong.PU2.PV/-56Noogg.BSC";
 //Note: I have given \\\\ instead of \\ because of string literal to be accomadated in a string
 Match pattern = Regex.Match(text, @"\\\\[\w]+\\/[\w*]+.BSC");
尝试以下掩码:

.*(\\\\[^\\]*\\)([^\\\/]+)[\\\/](.*?\.BSC).*
换成1美元3美元

Regex reg = new Regex(@".*(\\\\[^\\]*\\)([^\\\/]+)[\\\/](.*?\.BSC).*");
string input = @"\\hjsschjsn\Bunong.PU2.PV/-56Noogg.BSC";
string output = reg.Replace(input, "$1$3");

请参见示例

您的第一个场景中是否有输入错误或“/”正斜杠是故意的?@twhetsto:“/”正斜杠是故意的。感谢您提供此代码片段,它可能会提供一些即时帮助。一个恰当的解释将通过说明为什么这是一个很好的解决问题的方法来体现它的教育价值,并将使它对未来有类似但不完全相同问题的读者更有用。请编辑您的答案以添加解释,并说明适用的限制和假设。