【发布时间】:2010-02-22 19:27:23
【问题描述】:
我正在尝试替换这样的东西:
NSSomeFunction(@"some var", @"another one")
与:
NSSomeOhterFunction(@"some var")
在 Xcode 中。所以这些是源文件...... 我敢打赌,正则表达式会是这样的:
NSSomeFunction\((.*), .+\)
但我需要这个懒惰。否则 .+) 将匹配最后一个括号出现而不是第一个(例如,在给定以下字符串的情况下,最后的两个括号都将替换为单个括号:"NSLog(@"%@", NSSomeFunction(@"hey", @ "大声笑"))")。
如何做这样的惰性搜索?我认为您可以使用修饰符 /U(不贪婪)在珍珠中做到这一点。虽然 Xcode 似乎不支持。
【问题讨论】:
-
/U修饰符是在 PHP 中找到的,而不是在 Perl 中,它使所有量词默认为非贪婪,或者如果后面跟着?则为贪婪。引用弗里德尔的话,“我猜这个模式修饰符的主要作用是造成混乱,所以我当然不推荐它。” oreilly.com/catalog/regex3/index.html
标签: regex xcode regex-greedy non-greedy