菜鸟教程小白 发表于 2022-12-13 16:11:31

ios - 用于匹配带有小写和破折号的特定 URL 的正则表达式


                                            <p><p>每天早上,我都会访问这个名为 mtonews.com 的网站,并尝试使用 RegEx 构建一个 iOS 快捷方式来打开网站上的所有新闻链接。 </p>

<p>网站有一堆链接:</p>

<pre><code>https://mtonews.com/rihanna-teams-up-with-lvmh-for-fashion-brand   
https://mtonews.com/ciara-goes-naked-for-new-album-release

https://www.btserve.com/serve?t=bidt-sra&amp;amp;v=1&amp;amp;pubId=168&amp;amp;siteId=512&amp;amp;placementUid=5ae8e4105e-168%7C5&amp;amp;pgid=78ff2e45-8b3c-6a06-465f-2ac1a107f4f6&amp;amp;o=https://mtonews.com/&amp;amp   
https://mtonews.com/.image/t_share/MTYzOTYyODY2ODAwNTM1Mzc3/steve_marjorie.png
</code></pre>

<p>我希望 RegEx 打开与前两个类似的所有链接。</p>

<p>这是我目前所拥有的:</p>

<pre><code>^(?!image$|btserve$).*mtonews.com.*$
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p> <a href="https://regex101.com/r/MWircl/1/" rel="noreferrer noopener nofollow">This tool</a>可能会帮助您根据需要设计表达式。捕获组是正则表达式最简单的功能,您可以逐步将所需的输出与它们绑定(bind)。例如,</p>

<pre><code>^((https?.*)(mtonews.com\/)(+))$
</code></pre>

<p>有四个捕获组,一个用于协议(protocol),一个用于域,一个用于前导 URL,第一个将所有这三个组包装在其中,并且可以通过 <code>$1</code> 简单地调用。</p>

<p> <a href="/image/GeeNo.png" rel="noreferrer noopener nofollow"><img src="/image/GeeNo.png" alt="enter image description here"/></a> </p>

<h3>正则表达式描述图</h3>

<p>图表直观地显示了它的工作原理,您可能希望在 <a href="https://jex.im/regulex/#!flags=&amp;re=%5E(a%7Cb)*%3F%24" rel="noreferrer noopener nofollow">link</a> 中测试其他表达式:</p>

<p> <a href="/image/sJPRx.png" rel="noreferrer noopener nofollow"><img src="/image/sJPRx.png" alt="enter image description here"/></a> </p>

<h3>基本性能测试</h3>

<p>此 JavaScript 片段返回一百万次 <code>for</code> 循环的运行时以提高性能。</p>

<p></p><div class="snippet"data-lang="js"data-hide="false"data-console="true"data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>const repeat = 1000000;
const start = Date.now();

for (var i = repeat; i &gt;= 0; i--) {
        const string = &#39;https://mtonews.com/rihanna-teams-up-with-lvmh-for-fashion-brand&#39;;
        const regex = /^((https?.*)(mtonews.com\/)(+))$/gm;
        var match = string.replace(regex, &#34;\nGroup #1: $1\nGroup #2: $2 \nGroup #3: $3 \nGroup #4: $4 \n&#34;);
}

const end = Date.now() - start;
console.log(&#34;YAAAY! \&#34;&#34; + match + &#34;\&#34; is a match
页: [1]
查看完整版本: ios - 用于匹配带有小写和破折号的特定 URL 的正则表达式