我有這種情況,用戶可能會輸入或不輸入http(s)://
的URL。我想要它,如果它在那裏,否則自己添加http://
。我有以下的正則表達式模式:如何捕獲可選組並在不匹配的情況下進行替換?
正則表達式:\[url\](?:https?\:\/\/)?(.*?)\[\/url\]
更換:<a href="$1">$1</a>
這使得這個
[url]http://blog.sanspace.in[/url]
[url]https://blog.sanspace.in[/url]
[url]blog.sanspace.in[/url]
[url]blog.sanspace.in/scraperwiki[/url]
[url]www.sanspace.in[/url]
這個
<a href="http://blog.sanspace.in">http://blog.sanspace.in</a>
<a href="http://blog.sanspace.in">http://blog.sanspace.in</a>
<a href="http://blog.sanspace.in">http://blog.sanspace.in</a>
<a href="http://blog.sanspace.in/scraperwiki">http://blog.sanspace.in/scraperwiki</a>
<a href="http://www.sanspace.in">http://www.sanspace.in</a>
現在,我想是使它喜歡這個。 (使用HTTP(S)如果有的話。否則,HTTP)
<a href="http://blog.sanspace.in">http://blog.sanspace.in</a>
<a href="https://blog.sanspace.in">https://blog.sanspace.in</a>
<a href="http://blog.sanspace.in">http://blog.sanspace.in</a>
<a href="http://blog.sanspace.in/scraperwiki">http://blog.sanspace.in/scraperwiki</a>
<a href="http://www.sanspace.in">http://www.sanspace.in</a>
我試圖加入http(s)
爲一組。
正則表達式:\[url\](https?\:\/\/)?(.*?)\[\/url\]
更換:<a href="$1$2">$1$2</a>
UT,在這種情況下,替換順序$1
和$2
是不同的。如果用戶添加了http
,則其變爲$1
,否則URL變爲$1
。
<a href="http://blog.sanspace.in">http://blog.sanspace.in</a>
<a href="https://blog.sanspace.in">https://blog.sanspace.in</a>
<a href="blog.sanspace.in">blog.sanspace.in</a>
<a href="blog.sanspace.in/scraperwiki">blog.sanspace.in/scraperwiki</a>
<a href="www.sanspace.in">www.sanspace.in</a>
請注意最後3個網址。在這裏,我必須添加http
,但前提是我知道沒有用戶添加http
。我不知道如何實現我的目標。
我在這裏測試這個問題。 http://regexr.com?3711a
該正則表達式的哪種語言/工具? – anubhava