Regex 正则表达式查找并替换,但保留代码(字母编号)不变
我有以下标签:Regex 正则表达式查找并替换,但保留代码(字母编号)不变,regex,Regex,我有以下标签: <overlay id="B66" x="600"> 我想更改x值,但保留所有其他内容不变,但其他项目的其他x值等于600,因此我不能仅对x进行查找和替换 我使用了以下方法查找所有标记: \<overlay id=\"[A-Z]{1}[0-9]{2}\" x=\"600\" \如果将正则表达式定义为: "(<overlay id=\"[A-Z]{1}[0-9]{2}\" x=\")(600)(\")" 这将产生: <overlay id="
<overlay id="B66" x="600">
我想更改x值,但保留所有其他内容不变,但其他项目的其他x值等于600,因此我不能仅对x进行查找和替换
我使用了以下方法查找所有标记:
\<overlay id=\"[A-Z]{1}[0-9]{2}\" x=\"600\"
\如果将正则表达式定义为:
"(<overlay id=\"[A-Z]{1}[0-9]{2}\" x=\")(600)(\")"
这将产生:
<overlay id="B66" x="New Value"
答案取决于您愿意使用的语言
例如,在带有sed的shell中
:
$ echo '<overlay id="B66" x="600">' | sed -re 's/<overlay id="([A-Z]{1}[0-9]{2})" x=\"600\"/<overlay id="\1" x="666"/'
<overlay id="B66" x="666">
$echo'| sed-re's/如果您具有查找断言的灵活性
搜索:
”%(]*(?哪种是编程语言?
$ echo '<overlay id="B66" x="600">' | sed -re 's/<overlay id="([A-Z]{1}[0-9]{2})" x=\"600\"/<overlay id="\1" x="666"/'
<overlay id="B66" x="666">
expanded:
'%
(<overlay (?=\s)[^>]* (?<=\s)x\s*=\s*(["']))
\s*600\s*
(\2[^>]*/?>)
%x'