我必须重命名我们的应用程序,并希望搜索源代码中的所有字符串以使用它。当然,应用程序名称可以出现在字符串中的任何位置,并且字符串可以跨越多行,这使事情变得复杂。
我曾使用 (["'])APP_NAME
在字符串开头查找实例,但现在我需要一个更完整的解决方案。
本质上我想说的是在正则表达式中“查找用引号括起来的 APP_NAME 的实例”。
我正在 Xcode 中搜索,以防有人有任何特定于 Xcode 的替代方案...
最佳答案
您可以使用
"[^"]*APP_NAME[^"]*"|'[^']*APP_NAME[^']*'
请参阅regex demo .
请注意,此正则表达式基于交替(|
表示 OR)和否定字符类([^"]*
匹配任何 0 + "
以外的字符)。
或者,另一种选择:
(["'])(?:(?!\1).)*APP_NAME.*?\1
参见this regex demo 。该模式有点棘手:
(["'])
- 将"
或'
捕获到组 1(?:(?!\1).)*
- 任何 0 次以上出现的字符不等于第 1 组中捕获的字符APP_NAME
- 文字字符序列.*?
- 除换行符之外的任何 0+ 个字符,但尽可能少`直到第一次出现...\1
- 捕获到组 1 中的值。
关于regex - 使用正则表达式在源代码文件中搜索子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942425/