将一组替换为另一组;跟进问题
Substitute one group with another group; Followup question
我指的是这个话题:
我想做的是将 P1(y) 的值放入 P4(y),
最终结果:(...) <P4 x="-0,36935" y="0,26315"/>
我之前的问题很相似,似乎需要一种全新的方法。
不幸的是我找不到可靠的解决方案。
要处理的示例:
https://regex101.com/r/iua3p0/2
<P1 x="-0,36935" y="0,26315"/><P2 (...)/><P3 (..)/><P4 x="-0,36935" y="-0,40351"/>
<P1 x="4,64065" y="0,26315"/><P2 (...)/><P3 (..)/><P4 x="4,64065" y="-0,40351"/>
要将 P1(y) 的值放入同一行的 P4(y),您可以使用:
<P1[^>]*\hy="([^"]+)"[^>]*>.*?<P4[^>]*\hy="\K[^"]+(?=[^>]*>)
模式匹配:
<P1[^>]*
匹配 <P1
和 >
以外的可选字符
\hy="
匹配 space 和 y="
([^"]+)
在 组 1 中捕获 "
以外的字符
"[^>]*>
匹配 "
和 >
以外的可选字符,然后匹配 >
.*?
匹配尽可能少的字符
<P4[^>]*\hy="
匹配 <P4
和 >
以外的可选字符,然后匹配 space 和 y="
\K[^"]+
清除匹配缓冲区,然后匹配您要删除的内容,在本例中为 "
以外的 1+ 个字符
(?=[^>]*>)
肯定前瞻断言 >
向右
并使用 </code></p> 替换为第 1 组
<p>看到一个<a href="https://regex101.com/r/yxrp2K/1" rel="nofollow noreferrer">regex demo</a>.</p>
<p><a href="https://i.stack.imgur.com/iYP6k.png" rel="nofollow noreferrer"><WBIMG:16971924-1.png></a></p>
<p><strong>注意</strong> 不匹配使用否定字符 class 的行,您可以使用 <code>[^"\r\n]
和 [^>\r\n]*
[排除匹配的换行符=36=]
我指的是这个话题:
我想做的是将 P1(y) 的值放入 P4(y),
最终结果:(...) <P4 x="-0,36935" y="0,26315"/>
我之前的问题很相似,似乎需要一种全新的方法。 不幸的是我找不到可靠的解决方案。
要处理的示例: https://regex101.com/r/iua3p0/2
<P1 x="-0,36935" y="0,26315"/><P2 (...)/><P3 (..)/><P4 x="-0,36935" y="-0,40351"/>
<P1 x="4,64065" y="0,26315"/><P2 (...)/><P3 (..)/><P4 x="4,64065" y="-0,40351"/>
要将 P1(y) 的值放入同一行的 P4(y),您可以使用:
<P1[^>]*\hy="([^"]+)"[^>]*>.*?<P4[^>]*\hy="\K[^"]+(?=[^>]*>)
模式匹配:
<P1[^>]*
匹配<P1
和>
以外的可选字符
\hy="
匹配 space 和y="
([^"]+)
在 组 1 中捕获 "[^>]*>
匹配"
和>
以外的可选字符,然后匹配>
.*?
匹配尽可能少的字符<P4[^>]*\hy="
匹配<P4
和>
以外的可选字符,然后匹配 space 和y="
\K[^"]+
清除匹配缓冲区,然后匹配您要删除的内容,在本例中为"
以外的 1+ 个字符
(?=[^>]*>)
肯定前瞻断言>
向右
"
以外的字符
并使用 </code></p> 替换为第 1 组
<p>看到一个<a href="https://regex101.com/r/yxrp2K/1" rel="nofollow noreferrer">regex demo</a>.</p>
<p><a href="https://i.stack.imgur.com/iYP6k.png" rel="nofollow noreferrer"><WBIMG:16971924-1.png></a></p>
<p><strong>注意</strong> 不匹配使用否定字符 class 的行,您可以使用 <code>[^"\r\n]
和 [^>\r\n]*
[排除匹配的换行符=36=]