我有一个包含名称的字符串,如避免重复匹配,如果匹配空格前面
"james frederick ricky rick jones"
我想第一个匹配的“麦垛”通过一个空白
的先拆分此字符串代码如下(在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"
你是什么意思第一**首先匹配“瑞克”**,如果有**许多瑞奇瑞克后来**?如果FIRST意味着**只有一个**,'string.IndexOf'就简单多了。我的例子中的 –
与Frederick中的“rick”相匹配。但我只需要匹配只有第一个“瑞克”先行与空白。如果之后有很多ricky或rick,他们不应该匹配。 –
那你为什么选择'regex'而不是'IndexOf',考虑性能,可维护性和简单性(这就是为什么你在这里问)? –