我需要找到以斜杠符号开头并以斜杠符号结尾的子字符串。
string sourceStr = "assets/Level 1/diffuse;
正则表达式的输出必须“ 1级”
我发现这个正则表达式^"\"(.+)"\"$
,但似乎它不能按我想要的方式工作。
有什么想法吗?
答案 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);
}