我目前正在對雅虎的管道管道。我得到了一個RegExp來匹配一個URL。現在,我需要匹配無與倫比的才能刪除它,以便只有我的網址。我的正則表達式是:反轉匹配正則表達式
[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+
如何反轉匹配? (它必須通過另一個正則表達式完成,YPipes不支持任何其他方式。)
編輯:爲了澄清:我有一個字符串,並需要得到它裏面的第一個網址。這就是爲什麼沒有別的辦法......
我目前正在對雅虎的管道管道。我得到了一個RegExp來匹配一個URL。現在,我需要匹配無與倫比的才能刪除它,以便只有我的網址。我的正則表達式是:反轉匹配正則表達式
[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+
如何反轉匹配? (它必須通過另一個正則表達式完成,YPipes不支持任何其他方式。)
編輯:爲了澄清:我有一個字符串,並需要得到它裏面的第一個網址。這就是爲什麼沒有別的辦法......
雅虎管道支持正則表達式替換(使用正則表達式的字符串模塊)。
然後匹配你想要的部分保留並將其捕獲到一個組中。你已經這樣做了,雖然你的正則表達式本身就是稍有不當,這裏是一個至少已糾正明顯的錯誤:
([A-Za-z]+://[A-Za-z0-9_-]+\.[A-Za-z0-9_:%&?/.=-]+) ^ ^ ^ | | | | | + lone dashes always at the end of the character class! | +--- forward slashes do not need to be escaped +--- capturing group 1, contents later accessible through $1
,然後替換該組的內容整個字符串。只需將$1
放入「替換爲」字段即可。實際上,這會消除您不想保留的所有內容。
因爲我不知道你的正則表達式實際上應該做的,我不能給你一個更好的版本。
作爲一般提示:正則表達式是永遠,只有約匹配的東西,從來沒有關於不匹配(即「不包括」)東西。有排除效果的正則表達式,但即使他們通過匹配來實現它。
沒有了「不」啄工作?即像這樣:[^(your-regexp-here)] – RWS 2010-08-25 19:47:55
不,你可以反轉字符類的方式,但不是整個正則表達式。 – 2010-08-25 19:57:59
好的,謝謝,我的錯。抱歉。 – RWS 2010-08-25 20:05:56