这是像'/ aaa/bbb/ccc/ddd'或'/ aaa/zzz'这样的示例字符串
我希望得到一个正则表达式来获取每个块,如
aaa
bbb
ccc
ddd
因此,我写道
Regex r = new Regex(@"(/[^/]*)*");
Run Code Online (Sandbox Code Playgroud)
但它只能得到最后一场比赛,
/ ddd
我怎么能得到每个人,非常感谢.
更新我的问题:我知道'分裂',只是为了好玩.情况是我有一个字符串:
string s = @"ftp://127.0.0.1/TE ST.?? ??CC/T # ES T.OK/# ##?? ??##^#@!aaa.txt";
Run Code Online (Sandbox Code Playgroud)
我想在/.../之间编码每个块(使用Uri.EscapeDataString(每个))我更喜欢使用Regex.Replace,这可能吗?
你不需要(也不应该使用)正则表达式来做这么简单的事情.
string s = "/aaa/bbb/ccc/ddd";
var blocks = s.Split('/');
foreach(var block in blocks) {
Console.WriteLine(block);
}
Run Code Online (Sandbox Code Playgroud)
输出:
aaa
bbb
ccc
ddd
Run Code Online (Sandbox Code Playgroud)
编辑:哦,我明白你要做什么.所以现在我们不想删除空条目,我们想说
string encoded = String.Join("/", blocks.Select(b => Uri.EscapeDataString(b)));
Run Code Online (Sandbox Code Playgroud)
在这种情况下,为什么不拆分/?
String[] split = "/aaa/bbb/ccc/ddd".split("/");
Run Code Online (Sandbox Code Playgroud)
(注意,自从我编写C#以来已经有一段时间了,所以上面可能包含一两个错误,但是这个想法应该是明确的.)
| 归档时间: |
|
| 查看次数: |
1113 次 |
| 最近记录: |