Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式查找并替换,但保留代码(字母编号)不变_Regex - Fatal编程技术网

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'