查找子字符串除以斜杠

时间:2014-05-30 11:04:38

标签: c# regex

我需要找到以斜杠符号开头并以斜杠符号结尾的子字符串。

string sourceStr = "assets/Level 1/diffuse;

正则表达式的输出必须 1级

我发现这个正则表达式^"\"(.+)"\"$,但似乎它不能按我想要的方式工作。 有什么想法吗?

4 个答案:

答案 0 :(得分:5)

你不需要正则表达式。只是一个老派.Split()就足够了

这样做:

string sourceStr = "assets/Level 1/diffuse";
var subStr = sourceStr.Split('/')[1];
Console.WriteLine(subStr); // Level 1 

答案 1 :(得分:0)

string[] sourceStrSplit = sourceStr.Split('/');

for(int i=1; i< sourceStrSplit.Length-1; i++)
{
   //All the sourceStrSplit[i] is what you required.
}

答案 2 :(得分:0)

关于如何使用任意数量的斜杠进行此工作,以便只返回包含在两个斜杠内的项目

https://dotnetfiddle.net/ErN9Wu

public static void Main()
{
    Console.Write("1 -> ");
    foreach(var w in getStringsInsideSlashes("a/b"))
        Console.Write(w + " - ");
    Console.WriteLine("");

    Console.Write("2 -> ");
    foreach(var w in getStringsInsideSlashes("a/b/c"))
        Console.Write(w + " - ");
    Console.WriteLine("");

    Console.Write("3 -> ");
    foreach(var w in getStringsInsideSlashes("a/b/c/d"))
        Console.Write(w + " - ");
    Console.WriteLine("");

    Console.Write("4 -> ");
    foreach(var w in getStringsInsideSlashes("a/b/c/d/"))
        Console.Write(w + " - ");
    Console.WriteLine("");

}

public static string[] getStringsInsideSlashes(string a){
    return a.Split('/').Skip(1).Take(a.Split('/').Count() -2).ToArray<string>();    
}

输出

1 -> 
2 -> b - 
3 -> b - c - 
4 -> b - c - d -

答案 3 :(得分:0)

您可以使用字符串拆分功能代替RegEx。

string strTestline = "This is /Test/. You can /test2/";
string[] strarray = strTestline.Split(new char[] { '/' });

foreach (string block in strarray)
{
     Console.WriteLine(block);
}