本文整理汇总了C#中RubyRegex.Split方法的典型用法代码示例。如果您正苦于以下问题:C# RubyRegex.Split方法的具体用法?C# RubyRegex.Split怎么用?C# RubyRegex.Split使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RubyRegex
的用法示例。
在下文中一共展示了RubyRegex.Split方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RegexEncoding2
public void RegexEncoding2() {
var SJIS = RubyEncoding.KCodeSJIS.StrictEncoding;
// 1.9 encodings:
var invalidUtf8 = MutableString.CreateBinary(new byte[] { 0x80 }, RubyEncoding.UTF8);
AssertExceptionThrown<ArgumentException>(() => new RubyRegex(invalidUtf8, RubyRegexOptions.NONE));
// LastMatch
MatchData m;
var u = MutableString.CreateBinary(SJIS.GetBytes("あああ"), RubyEncoding.KCodeSJIS);
var p = MutableString.CreateBinary(SJIS.GetBytes("あ{2}"), RubyEncoding.KCodeSJIS);
var rs = new RubyRegex(p, RubyRegexOptions.SJIS);
// /あ{2}/ matches "あああ", the resulting index is in bytes:
m = rs.LastMatch(null, u);
Assert(m != null && m.Index == 2);
rs = new RubyRegex(MutableString.CreateBinary(SJIS.GetBytes("あ")), RubyRegexOptions.SJIS);
// "start at" in the middle of a character:
m = rs.LastMatch(null, u, 0);
Assert(m != null && m.Index == 0);
m = rs.LastMatch(null, u, 1);
Assert(m != null && m.Index == 0);
m = rs.LastMatch(null, u, 2);
Assert(m != null && m.Index == 2);
m = rs.LastMatch(null, u, 3);
Assert(m != null && m.Index == 2);
// Split
u = MutableString.CreateBinary(SJIS.GetBytes("あちあちあ"), RubyEncoding.UTF8);
rs = new RubyRegex(MutableString.CreateBinary(SJIS.GetBytes("ち")), RubyRegexOptions.SJIS);
var parts = rs.Split(null, u);
Assert(parts.Length == 3);
foreach (var part in parts) {
Assert(part.Encoding == RubyEncoding.KCodeSJIS);
Assert(part.ToString() == "あ");
}
// groups
rs = new RubyRegex(MutableString.CreateBinary(SJIS.GetBytes("ち(a(あ+)(b+))+あ")), RubyRegexOptions.SJIS);
u = MutableString.CreateBinary(SJIS.GetBytes("ちaああbaあbbbあ"));
m = rs.Match(null, u);
Assert(m.GroupCount == 4);
int s, l;
Assert(m.GetGroupStart(0) == (s = 0));
Assert(m.GetGroupLength(0) == (l = u.GetByteCount()));
Assert(m.GetGroupEnd(0) == s + l);
// the group has 2 captures, the last one is its value:
Assert(m.GetGroupStart(1) == (s = SJIS.GetByteCount("ちaああb")));
Assert(m.GetGroupLength(1) == (l = SJIS.GetByteCount("aあbbb")));
Assert(m.GetGroupEnd(1) == s + l);
// the group has 2 captures, the last one is its value:
Assert(m.GetGroupStart(2) == (s = SJIS.GetByteCount("ちaああba")));
Assert(m.GetGroupLength(2) == (l = SJIS.GetByteCount("あ")));
Assert(m.GetGroupEnd(2) == s + l);
// the group has 2 captures, the last one is its value:
Assert(m.GetGroupStart(3) == (s = SJIS.GetByteCount("ちaああbaあ")));
Assert(m.GetGroupLength(3) == (l = SJIS.GetByteCount("bbb")));
Assert(m.GetGroupEnd(3) == s + l);
}