输入文件“input.xml”:
<integer name="leftValue">30</integer>
<integer name="rightValue">580</integer>
<integer name="rightValueDefault">495</integer>
我希望每个数值乘以 2:
<integer name="leftValue">60</integer>
<integer name="rightValue">1160</integer>
<integer name="rightValueDefault">990</integer>
怎么做?
使用适当的 XML 解析器。例如,在xsh中,您可以只写
一般来说,您不应该使用正则表达式来解析 HTML/XML。
但是,如果您的输入文件真的像示例中显示的那样(每行只有一个开始和结束标记,并且
>
在开始标记结束之前没有字符),则使用 Perl:s
: 断言执行替换/
: 开始模式>
: 匹配一个>
字符([0-9]+)
: 匹配和分组一位或多位数字/
: 停止模式/开始替换字符串">".$1*2
: 表达; 两个字符串的连接,一个>
字符和第一个捕获的组乘以2
/
: 停止替换字符串/启动模式标志e
: 断言评估替换字符串