簡體   English   中英

正則表達式以匹配長字符串中的URL

[英]Regex to match URL within long string

我在這里有一個字符串:

美好的一天,我想以$ 1000(例如,刪除這些括號)$ test $ asdf [並刪除這些括號]在此處查詢3D產品名稱的價格。 目前,我們在這里還有另一個產品名稱,我相信它的准確性約為0.0005 199200。http ://www.example.com這是一個測試

我在這里鏈接了一個正則表達式: https : //regex101.com/r/yE4kW6/7

里面有這個正則表達式:

[^\w\s|https?:\/\/.\-*\s]|\W*\b\d+(?:\.\d+)?\b

我現在要嘗試的是使其與整個URL匹配。 看來我的|https?:\\/\\/.\\-*\\s正在找到該url,但它卻忽略了它,可能是因為該集開頭的^是? 我可以使用一些幫助來匹配字符串中的URL。

除了我的評論,您還可以提出如下正則表達式:

~(https?://\S+)~
# start / end with the tilde ~ as delimiters
# look for http/https, followed by ://
# match anything that is not a whitespace
# capture everything into a group

對於JavaScript,這可以歸結為(注意轉義的正斜杠):

(https?:\/\/\S+)

這不是很具體,並且很大程度上取決於您的輸入字符串(也可以匹配URL的無效字符)。 在此處查看regex101上的演示

嘗試這樣的事情:

[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)

更多信息

您可以嘗試此正則表達式:

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)

您可以使用以下正則表達式

((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)

我已經用你的琴弦測試過了。 https://regex101.com/r/yE4kW6/8進行測試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM