regex HTML和Twitter URL -正则表达式-搜索和替换

eh57zj3b  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(133)

这是我的完整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&amp;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&#39;s how it&#39;ll run on each platform.
                    <a href="https:// t.co/ 2IdZP6yQGn">pic.twitter.com/2IdZP6yQGn</a>
                </p>
                &mdash; 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&amp;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&#39;s how it&#39;ll run on each platform.
<a href="https:// t.co/ 2IdZP6yQGn">pic.twitter.com/2IdZP6yQGn</a>

和以下代码:

&mdash; FINAL FANTASY VII (@finalfantasyvii) 
<a href="https://twitter.com/finalfantasyvii/status/1593246579489505281?ref_src=twsrc%5Etfw">
    November 17, 2022
</a>

不幸的是,我对regex一点概念都没有,我已经熟悉了来自https://regex101.com/的几个例子。
有正则表达式生成器吗?
或者用解析器正则表达式处理这么多代码的最佳方法是什么?
也许这里有人能帮我?或者告诉我哪里能得到帮助。

i7uaboj4

i7uaboj41#

试试看:

(https:\/\/twitter\.com\/[^\/]+\/status\/\d+)\s*[^"]+

Regex demo.
(https:\/\/twitter\.com\/[^\/]+\/status\/\d+)-将http://twitter.com/<name>/status/<any number>匹配为组1
\s*[^"]+-我们不需要参数,因此匹配到参数"的结尾
则替换为:

\[embed width="550"\]\g<1>\[/embed\]

相关问题