我使用的API有時會截斷它返回的文本內的鏈接,而不是「longtexthere https://fancy.link」我得到「longtexthere https://fa ...」。正則表達式匹配單詞(url)只有當它不包含字符
我想要匹配的鏈接,只有當它是完整的,或換句話說不包含「...」字符。
到目前爲止,我可以使用以下正則表達式來獲得鏈接:
((?:https?:)?\/\/\S+\/?)
但顯然它返回的每一個環節,包括打破的。
我一直試圖做這樣的事情:
((?:https?:)?\/\/(?:(?!…)\S)+\/?)
雖然這開始忽略「...」字,它仍在回覆鏈路只是,而不包括字符,所以用「的情況下, https://fa ...「它返回」https://fa「,而我只是想讓它忽略那個斷開的鏈接並繼續前進。
一直在打這幾個小時,只是無法讓我的頭在附近。 :(
感謝提前任何幫助
您的正則表達式引擎是否允許佔有量詞?試試['(?:https ?:)?\/\/[^ \ s ...] ++(?!...)\ /?'](https://regex101.com/r/jQ9lQ2/1) –
注意你也可以在最後刪除'\ /?',因爲它永遠不會匹配。如果您的正則表達式是JavaScript或Python,請嘗試['(?!\ S + ...)(?:https ?:)?\/\/\ S +'](https://regex101.com/r/jQ9lQ2/2) –
如果你的正則表達式支持所有格量詞和lookbehind,你也可以嘗試['(?:https ?:)?\/\/\ S ++(?<!...)'](https://regex101.com/r/jU9jU8/1)如果lookbehind不匹配,所有格量詞將防止回溯。 –