将"1Don't do that"替换为"_1Don_t_do_that"

zna*_*nat 8 regex xcode

我需要修改键值文件的键,如下所示:

"1Don't do that" = "some value"
Run Code Online (Sandbox Code Playgroud)

"_1Don_t_do_that" = "some value"
Run Code Online (Sandbox Code Playgroud)
  • 如果字符串以数字开头,则以下划线加前缀
  • 用下划线替换任何非字母数字字符
  • 不要改变值字符串

如有必要,我可以分几步完成

我尝试过类似的东西 \"\w+[^\w]\w+\" = 但它不考虑多个空格,也没有单引号或双引号.

欢迎任何帮助.

Tim*_*ker 3

假设你的引号都没有被转义,这应该有效:

(?:(?<=")(?=\d)|[^\w"])(?=[^"]*"\s*=)
Run Code Online (Sandbox Code Playgroud)

这匹配

  • 和 之间的位置"或数字
  • 或非字母数字字符(引号除外),

但前提是它们后跟单引号和等号。

在 regex101 上查看它