我需要修改一个键值文件的键如下:
"1Don't do that" = "some value"
至
"_1Don_t_do_that" = "some value"
- 如果字符串以数字开头,则在前面加上下划线
- 用下划线替换任何非字母数字字符
- 不要更改值字符串
如有必要,我可以分几个步骤完成
我已经尝试过类似的方法\"\w+[^\w]\w+\" =
,但它没有考虑多个空格,也没有单引号或双引号。
欢迎任何帮助。
假设您的引号都没有转义,这应该有效:
(?:(?<=")(?=\d)|[^\w"])(?=[^"]*"\s*=)
这匹配
"
一个数字之间的位置但前提是它们后跟单引号和等号。
我不确定 Xcode 使用什么正则表达式风格,但只要它支持积极(?=)
的前瞻,这一系列替换应该可以工作:
^"(?=\d)
"_
[^a-zA-Z0-9](?=[^"]*"\s*=\s*"[^"]*")
_
第二步假设引号字符永远不会出现在值字符串中;告诉我您是否需要处理反斜杠转义的引号字符。