Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.NET中是否可以保证正则表达式匹配的顺序?_.net_Regex - Fatal编程技术网

在.NET中是否可以保证正则表达式匹配的顺序?

在.NET中是否可以保证正则表达式匹配的顺序?,.net,regex,.net,Regex,在.NET中是否可以保证正则表达式匹配的顺序?如果我有一个字符串: +Apple+ +Orange+ +Banana+ +Foo+ +Bar+ +Second Line+ +More Stuff+ +Etc...+ 给定图案(全局点全部): .NET中的RegEx类是否保证这些项目的更换顺序为: 苹果 橙色的 香蕉 福 酒吧 第二线 更多的东西 等等 如果我使用替换代理执行自己的替换,是否保留此顺序?i、 e.替换委托方法是按每个模式匹配的顺序调用的,还是不能保证的?似乎可以保证。从 该方法相

在.NET中是否可以保证正则表达式匹配的顺序?如果我有一个字符串:

+Apple+ +Orange+ +Banana+ +Foo+ +Bar+
+Second Line+ +More Stuff+
+Etc...+
给定图案(全局点全部):

.NET中的RegEx类是否保证这些项目的更换顺序为:

  • 苹果
  • 橙色的
  • 香蕉
  • 酒吧
  • 第二线
  • 更多的东西
  • 等等

  • 如果我使用替换代理执行自己的替换,是否保留此顺序?i、 e.替换委托方法是按每个模式匹配的顺序调用的,还是不能保证的?

    似乎可以保证。从

    该方法相当于调用该方法并将返回的MatchCollection集合中的每个Match对象传递给evaluator委托

    Matches方法与Match方法类似,只是它返回有关输入字符串中所有匹配项的信息,而不是单个匹配项的信息。它相当于以下代码:

    因此,似乎每个匹配项都将按顺序传递给MatchEvaluator委托

    有很多例子是使用匹配顺序来选择不同的替换项

    在未来的版本中它会改变吗?IMHO说,这可能会破坏太多的程序,使得微软改变它是值得的

    \+(.*?)\+
    
    Match match = regex.Match(input);
    while (match.Success) {
         // Handle match here...
    
         match = match.NextMatch();
    }