为什么“RegexOptions.RightToLeft”的结果与LeftToRight不同?

时间:2015-04-07 22:40:41

标签: c# .net

我的字符串==> a =“b * cde-fg,h”i =“jkl.mn”opqrs =“tu / vw”x =“yz”

我想要的结果==>> b * cde-fg,h

我的模式==>>一个= “(。+?)\”

如果我使用RegexOptions作为LeftToRight(正常模式)它将给出结果==>> b * cde-fg,h

但如果我使用RegexOptions作为RightToLeft它将给出结果==>> b * cde-fg,h“i =”jkl.mn“opqrs =”tu / vw“x =”yz

如何使RightToLeft的结果与LeftToRight相似?

1 个答案:

答案 0 :(得分:2)

返回正确的结果,RightToLeft表示从右向左走正则表达式。

当你使用非贪婪的绑定时,你并没有说"给我一个匹配"的最短字符串。你说"一旦你有匹配停止处理"。

首先使用",然后在第一次匹配时最后一个a="消耗任意数量的字符是字符串的开头。