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

标签 regex

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

我曾使用 (["'])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/

相关文章:

Python 正则表达式 : alternative positive lookbehind assertion

JavaScript 正则表达式 : accept only space and letters from all languages

C# Regex 更改每个匹配项的替换字符串

jQuery - 正则表达式问题 - 获取 3 '/'(斜杠)之间的 href 地址

regex - 使用 awk 查找列值 *

Python 正则表达式 : get everything except for string

java - 在线工具上的正则表达式匹配在末尾有特殊字符时在 Java 中不匹配

javascript - 为什么正则表达式匹配的字符串表现得很奇怪?

regex - 按缩进模式处理文本文件

javascript - 在javascript中限制正则表达式中的日期和月份