簡體   English   中英

在一對分隔符(即字符串)之間解析字符串

[英]Parse string between a pair of delimiters (that are strings)

我想創建一個使用Superpower來匹配字符串的解析器,例如:

<<This is my text>>

即,由一對字符串(左和右)分隔的字符串。 在這種情況下,分隔字符串是<<>>

現在,我所擁有的只是一個僅在分隔符為單個字符時才有效的解析器:

public static TextParser<TextSpan> SpanBetween(char left, char right)
{
    return Span
        .MatchedBy(Character.Except(right).Many())
        Between(Character.EqualTo(left), Character.EqualTo(right));
}

我應該如何right left字符串來修改它?

public static TextParser<TextSpan> SpanBetween(string left, string right)
{
    return Span
        .MatchedBy(Parse.Not(Span.EqualTo(right)).Then(p => Character.AnyChar).Many())
        .Between(Span.EqualTo(left), Span.EqualTo(right));
}

或使用Span.Except

public static TextParser<TextSpan> SpanBetween(string left, string right)
{
    return Span
        .MatchedBy(Span.Except(right))
        .Between(Span.EqualTo(left), Span.EqualTo(right));
}

我假設,與您的問題所說的相反,您希望匹配分隔符之間的文本,而不是整個字符串,因為這是您的示例所顯示的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM