我需要将此函数转换为C#的替代方法,我试图找到一些类似的函数但没有成功。
Pascal / Delphi中的函数
function Parser(Buffer,Start,Finish:string):string;
var
PosStart, PosFinish: Integer;
begin
PosStart := Pos(Start, Buffer)+ Length(Start);
PosFinish := Posex(Finish, Buffer,PosStart);
Result := Copy(Buffer, PosStart, PosFinish - PosStart);
end;
使用示例:
kappa := 'test 0646944 but';
Parser(kappa,'test','but');
此函数返回两个阵营之间的内容
Result: 0646944
Any1替代方案?
答案 0 :(得分:2)
string.IndexOf => Pos
string.LastIndexOf => PosEx (I think)
string.Substring => Copy
现在尝试编写一些代码并再次询问是否卡住了
答案 1 :(得分:1)
这些方法有效:
var buffer = "test 0646944 but";
var start = "test";
var finish = "but";
var parsed =
buffer
.Substring(
buffer.IndexOf(start) + start.Length,
buffer.LastIndexOf(finish) - buffer.IndexOf(start) - start.Length);
// OR
var parsed =
Regex
.Match(buffer, Regex.Escape(start) + "(.*?)" + Regex.Escape(finish))
.Groups[1]
.Value;