这是我的完整HTML代码查找和替换:
<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter">
<div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="550" data-dnt="true">
<p lang="en" dir="ltr">
<a href="https://twitter.com/hashtag/CrisisCore?src=hash&ref_src=twsrc%5Etfw">#CrisisCore</a>
–Final Fantasy VII– Reunion is coming to PS5, PS4, Xbox Series X|S, Xbox One, Nintendo Switch and Steam on December 13.<br><br>Here's how it'll run on each platform.
<a href="https:// t.co/ 2IdZP6yQGn">pic.twitter.com/2IdZP6yQGn</a>
</p>
— FINAL FANTASY VII (@finalfantasyvii)
<a href="https://twitter.com/finalfantasyvii/status/1593246579489505281?ref_src=twsrc%5Etfw">November 17, 2022</a>
</blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>
</figure>
- (短网址to.co在堆栈溢出中不起作用)*
我只需要Twitter分享网址:https://twitter.com/finalfantasyvii/status/1593246579489505281?ref_src=twsrc%5Etfw
现在我可以将其替换为:[embed width="550"]$1[/embed]
但是正则表达式需要搜索完整的html并在短代码中替换它。
我们可以说:找到class= * wp-block-embed-twitter
,找到Twitter的URL(https://twitter.com/finalfantasyvii/status/1593246579489505281?ref_src=twsrc%5Etfw
),然后在短代码中替换它吗?
这段代码不断变化
<a href="https://twitter.com/hashtag/CrisisCore?src=hash&ref_src=twsrc%5Etfw">
#CrisisCore
</a>
–Final Fantasy VII– Reunion is coming to PS5, PS4, Xbox Series X|S, Xbox One, Nintendo Switch and Steam on December 13.<br><br>Here's how it'll run on each platform.
<a href="https:// t.co/ 2IdZP6yQGn">pic.twitter.com/2IdZP6yQGn</a>
和以下代码:
— FINAL FANTASY VII (@finalfantasyvii)
<a href="https://twitter.com/finalfantasyvii/status/1593246579489505281?ref_src=twsrc%5Etfw">
November 17, 2022
</a>
不幸的是,我对regex一点概念都没有,我已经熟悉了来自https://regex101.com/的几个例子。
有正则表达式生成器吗?
或者用解析器正则表达式处理这么多代码的最佳方法是什么?
也许这里有人能帮我?或者告诉我哪里能得到帮助。
1条答案
按热度按时间i7uaboj41#
试试看:
Regex demo.
(https:\/\/twitter\.com\/[^\/]+\/status\/\d+)
-将http://twitter.com/<name>/status/<any number>
匹配为组1\s*[^"]+
-我们不需要参数,因此匹配到参数"
的结尾则替换为: