[英]Parse a string, keeping all of the matches in between given strings (multi-character delimiters)
[英]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.