【问题标题】:Xcode lazy regular expressionXcode 惰性正则表达式
【发布时间】: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


【解决方案1】:

通常是 ?将表示非贪婪匹配,因此对于 .+) 您将使用 .+?)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2010-09-26
    相关资源
    最近更新 更多