C# 特定模式的正则表达式提取
我有以下格式的字符串。我有以下三种情况: 场景1: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”将始终在原始字符串中。另外,“\”和“\”也会出现,但文本会发生变化 我必须省略中间部分,我的输出应该是
"\\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:“/”正斜杠是故意的。感谢您提供此代码片段,它可能会提供一些即时帮助。一个恰当的解释将通过说明为什么这是一个很好的解决问题的方法来体现它的教育价值,并将使它对未来有类似但不完全相同问题的读者更有用。请编辑您的答案以添加解释,并说明适用的限制和假设。