我有这两个标签,标题和元描述:
<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"/>
答案 0 :(得分:1)
你可以试试这个:
<title>.*?<\/title>.*?(<meta.*?content="(.*?)"\/>)
并替换为:
<title>\2<\/title>\n\1
或者如果你想保留其余空间的其他内容......就是这样。无论如何,这两行之间有任何可能性......那么你可以这样做:
<title>.*?<\/title>(.*?)(<meta.*?content="(.*?)"\/>)
并替换为:
<title>\3<\/title>\1\2
更新
根据op的评论:反之亦然,你可以这样做:
(<title>(.*?)<\/title>.*?)(<meta.*?content=").*?("\/>)
并替换为
\1\3\2\4
P.S:确保选中. matches newline
。
答案 1 :(得分:0)
如果您有类似的标签,例如:<title>
和<h1>
。
。匹配换行符:
搜索:
<title>.*?<\/title>(.*?)(<h1>(.*?)<\/h1>)
REPLACE BY:
<title>\3<\/title>\1\2
反之亦然
。匹配换行符:
搜索:
(<title>(.*?)<\/title>.*?)(<h1>).*?(<\/h1>)
REPLACE BY
\1\3\2\4