读书人

一个正则表达式求解怎么匹配最右

发布时间: 2013-03-01 18:33:02 作者: rapoo

一个正则表达式求解,如何匹配最右?
本帖最后由 llx1990 于 2013-02-24 22:03:56 编辑 现在我有一串字符串
good12345good654321bad

我用这个表达式匹配
(?<=(good)).*?(?=(bad))
结果为
12345good654321

但是我想要匹配的是最右边最短的那个good,也就是说,结果要为
654321

请问要怎么从到最右边的good开始匹配,而不是一开始的那个good呢?
[解决办法]
加上匹配的内部不包含'good'就行了。

(?<=(good))((?!good).)*(?=(bad))
[解决办法]
顶机器人
还有一种解决方案:
匹配的时候,从右至左匹配:
Regex reg=new Regex("",RegexOptions.RightToLeft);

读书人网 >C#

热点推荐