首先,我正在寻找与此不同的东西:
我的目的是修改
带有"fillColor="#242838"
的 fillColor="mycolor"
但是,此语句中的十六进制颜色可以是
"fillColor="#221231"
或"fillColor="#213123"
那我怎么能找到&使用Windows批处理文件编辑文本。
修改:我为此尝试了JREPL.BAT正则表达式查找/替换实用工具。
jrepl "android:fillColor=(.*?)" "fillColor="mycolor" /x /f myfile.xml /o -
但是,从"
转义不适用于此行。
我已经尝试""
,\"
,^"
他们无法帮助我逃脱"
字符。
答案 0 :(得分:1)
可以使用JREPL.BAT完成任务,例如使用以下命令行:
jrepl.bat "(android:fillColor=\x22#)[0-9A-Fa-f]+" "$1FF0000" /f myfile.xml /o -
搜索字符串的说明:
(
... )
...标记组。该组找到的字符串在替换字符串中使用表达式$1
进行反向引用。
\x22
...用十六进制代码值指定的双引号字符。
[0-9A-Fa-f]+
...找到任何十六进制数字一次或多次。
搜索表达式中的所有其他字符都是文字解释字符,可在文件中找到。
替换字符串的说明:
$1
...对搜索正则表达式中标记组找到的固定字符串的反向引用。
FF0000
...新颜色值,此处为红色(RGB)。
此替换任务必须使用标记组,因为 JREPL.BAT 正在使用jscript,它不支持look-behind仅匹配要替换的颜色值上下文。
在批处理文件中使用时,必须使用命令 CALL 调用此命令行:
call jrepl.bat "(android:fillColor=\x22#)[0-9A-Fa-f]+" "$1FF0000" /f myfile.xml /o -