基本上我要做的是找到以“/ Game / Mods”开头的第一个字符串,但问题是如何告诉程序在哪里结束字符串?这是一个字符串的示例:string example
正如你可以看到字符串以“/ Game / Mods”开头,我希望它在单词“TamingSedative”之后结束,问题是结束字(TamingSedative)对于它必须检查的每个文件都是不同的,例如:example 2
在那里你可以看到结束词现在是“WeapObsidianSword”(而不是TamingSedative)所以基本上字符串必须在遇到“NUL”时结束但是我如何在c#代码中指定它?
答案 0 :(得分:0)
这是一个使用Regex的简单示例。
Dim yourString As String = "/Game/Mods/TamingSedative/PrimalItemConsumable_TamingSedative"
Dim M As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(yourString, "/Game/Mods/(.+?)/")
MessageBox.Show(M.Groups(0).Value) 'This should show /Game/Mods/TamingSedative/
MessageBox.Show(M.Groups(1).Value) 'This should show TamingSedative
答案 1 :(得分:0)
由于您只需要第一次出现,这是我能想到的最简单的解决方案:
(如果您无法看到图片,请点击它以在新标签页中打开)
修改强>
如果字符串中不保证存在这样的路径,您可以在继续使用Substring之前进行额外检查,如下所示:
int exists = fullString.IndexOf("/Game/Mods");
if (exists == -1) return null;
注意:我已经包含“ENDED”,以便查看是否包含任何NULL字符(空格)
答案 2 :(得分:0)
从您的评论:"字符串只需从/ Game / Mods开始,到达空白时结束"。
在这种情况下,您可以使用Linq轻松获取匹配项(假设filePath
是一个包含文件路径的字符串):
var text = File.ReadAllText(filePath);
var matches = text.Split(null).Where(s => s.StartsWith("/Game/Mods"));
而且,如果你只需要第一次出现,那就是:
var firstMatch = matches.Any() ? matches.First() : null;
选中post。