我有一个包含
等名称的字符串"james frederick ricky rick jones"
我想通过FIRST匹配" rick"来分割这个字符串。前面有一个空格
代码如下(在C#中)
string source = "james frederick ricky rick jones";
string expression = "(rick)(?<!\1.*\1)";
string[] chunks = Regex.Split(source, expression, RegexOptions.IgnoreCase);
我得到的结果是这样的
[0] - "james frede"
[1] - "rick"
[2] - "ricky rick jones"
是否可以更改或修改正则表达式以获得以下结果?
[0] - "james frederick"
[1] - "rick"
[2] - "y rick jones"
答案 0 :(得分:0)
试试这个:
(?:\s)+(rick)
(?:\s)+
是一个非选择的捕获组,在&#34; rick&#34;之前检查一个或多个空间匹配。所以应该是你正在寻找的东西。
答案 1 :(得分:0)
答案 2 :(得分:0)
这非常接近你的尝试。在&#34; rick&#34;之前放一个空格。在正则表达式。
string source = "james frederick ricky rick jones";
string expression = @"(\srick)(?<!\1.*\1)";
string[] chunks = Regex.Split(source, expression, RegexOptions.IgnoreCase);
var ch = chunks.Select(c =>c.TrimStart());
注意:根据你在问题中的要求,这确实会发现rick前面有一个空格。