REGEX:复制另一个标签中一个标签的内容,而不会丢失第二个标签的内容



我有两个标签,标题和元描述:

<title>My name</title>

<meta name="description" content="I love my beautiful princess"/>

我想将<meta name="description">标签的内容复制到<title>标签中,而不会丢失元标签的内容

所以我为此做了一个正则表达式:

搜索: <title>(.*?)</title>|<meta name="description" content="(.*?)"/>

替换为:<title>2</title>

在这种情况下,唯一的问题是我丢失了元标记的内容。

所以,我的愿望输出应该是:

<title>I love my beautiful princess</title>

<meta name="description" content="I love my beautiful princess"/>

你可以试试这个:

<title>.*?</title>.*?(<meta.*?content="(.*?)"/>)

并替换为:

<title>2</title>n1

或者,如果您想保留其余空间的其他内容......韦普任何机会在这两行之间出现任何东西。然后你可以这样做:

<title>.*?</title>(.*?)(<meta.*?content="(.*?)"/>)

并替换为:

<title>3</title>12

正则表达式演示

更新

根据OP的评论:反之亦然,您可以这样做:

(<title>(.*?)</title>.*?)(<meta.*?content=").*?("/>)

并替换为

1324

PS:确保选中. matches newline

如果您有类似类型的标签,例如:<title><h1>

。匹配换行符:

搜索: <title>.*?</title>(.*?)(<h1>(.*?)</h1>)

替换为:<title>3</title>12

反之亦然

。匹配换行符:

搜索: (<title>(.*?)</title>.*?)(<h1>).*?(</h1>)

替换为1324

相关内容

最新更新