2011-09-19 90 views
0

我想在文本字符串中替换特定的模式。 该模式是一个包含单词“sak”的href。红宝石正则表达式在第一场比赛使子停止

我的剧本目前看起来是这样的:

ccontent=ccontent.sub(/<a .+?href=\"([^\"]+)\"[^\>]*>Sak<\/a>/, '') 

的问题是,这种替换整个字符串。 (该字符串包含两个链接)。 问题出在`a。+?“符号周围的某处,它会通过我想要完全替换的链接并进入下一个链接并替换整个链接。

但我希望它在STOP时停止到达第一个模式匹配,使其仅擦除“SAK”链接。

如何使模式匹配停在第一时间到达“HREF”?

回答

4

你的表情是贪婪的,因为.+?只要图案仍然匹配,实际上将保持匹配任何字符。

只需使用字符集您已经在正则表达式的末尾使用:

ccontent.sub(/<a [^>]*href=\"([^\"]+)\"[^>]*>Sak<\/a>/, '')