有人可以幫助我改進這個正則表達式,以便捕獲以http://,https://或www開頭的所有內容,然後繼續下去直到它達到「或」它包括標點和區分大小寫改善這個正則表達式,包括它匹配的東西,直到它匹配某個字符
這裏是現在正則表達式:。
(wwww|https?://)
有人可以幫助我改進這個正則表達式,以便捕獲以http://,https://或www開頭的所有內容,然後繼續下去直到它達到「或」它包括標點和區分大小寫改善這個正則表達式,包括它匹配的東西,直到它匹配某個字符
這裏是現在正則表達式:。
(wwww|https?://)
/(?:https?:\/\/|www)[^'"]*/i
我避開了斜線,因爲如果您使用/.../
表示法,它們可能會發生衝突。 [^'"]
是一個倒排字符類,允許除引號外的所有內容。
編輯:我刪除了插入符號以匹配任何出現的模式,:?
使組無法捕獲。
啊,我看到斜槓沒有被轉義,在我實現它們之前,我正在嘗試使用這個正則表達式測試程序(http://regexpal.com/)和雖然你更有意義,但它不符合該測試人員的要求,我希望在http://,https://或www之後的所有內容直到但不包括'或「。 – IMUXIxD 2013-04-08 01:05:31
你如何測試它?這種表達方式在egrep中適用於我。 $ echo「www.google.com/asdf'dontmatchme」| egrep -oi「^(https?:\/\/| www)[^'\」] *「 - 注意 - 引號需要轉義..如果引用:-) – 2013-04-08 01:07:37
它適用於regexpal.com。 – 2013-04-08 01:30:25
與其嘗試編寫正則表達式來執行此操作,您爲什麼不在您的宿主語言中找到現有的解決方案? – 2013-04-08 01:03:56
@AndyLester真的,我現在正在尋找。我正在嘗試的是獲取字符串中所有錨點的href屬性的值。通過定位,我的意思是一個HTML錨。 – IMUXIxD 2013-04-08 01:06:49
所以你實際上是解析HTML。然後去獲得一個HTML解析器。 http://htmlparsing.com/爲您提供了許多不同語言的示例。你在用什麼語言? – 2013-04-08 03:13:44