使用正则表达式在源代码文件中搜索子字符串

时间:2017-01-30 17:57:32

标签: regex

我必须重命名我们的应用程序,并希望搜索源代码中的所有字符串以供其使用。当然,应用程序名称可以出现在字符串中的任何位置,并且字符串可以跨越多行,这使事情变得复杂。

我使用(["'])APP_NAME在字符串开头查找实例,但现在我需要一个更完整的解决方案。

基本上我想说的是“在正则表达式中找到被引号括起来的APP_NAME实例”。

我在Xcode中搜索,以防任何人有任何Xcode特定的替代品......

1 个答案:

答案 0 :(得分:2)

您可以使用

"[^"]*APP_NAME[^"]*"|'[^']*APP_NAME[^']*'

请参阅regex demo

请注意,此正则表达式基于交替(|表示 OR )和否定字符类([^"]*匹配除"以外的任何0+字符)

或者,或者:

(["'])(?:(?!\1).)*APP_NAME.*?\1

this regex demo。这种模式有点棘手:

  • (["']) - 将"'捕获到第1组
  • (?:(?!\1).)* - 任何0次出现的字符不等于捕获到第1组中的字符
  • APP_NAME - 文字字符序列
  • .*? - 除了换行符之外的任何0 +字符,但尽可能少的第一次出现......
  • \1 - 捕获到第1组的值。