我一直在試圖想出一個正則表達式,將從給定文本過濾出所有有效的UNIX路徑,但不會匹配任何URL(如http://...
)正則表達式查找UNIX路徑,而不是網址
下面的路徑都是有效的:
/home/username/some_file.txt
/home/username/some_file.longext
"/path/to/file/some file.longext"
但它不應該與任何這些:
http://www.somelink.com
ftp://www.somelink.co.uk
https://www.somelink.com and so on
我想出了這一點,但它的所有URL匹配過,這是我很TR英濾除:
"?[a-zA-Z0-9\/].*\.[a-zA-Z0-9].*"?
編輯: 我要提到的輸入文本實際內容是從裏面的URL,以及有效的UNIX路徑的文件,因此正則表達式需要能匹配任何路徑上的任何地方內除了匹配網址之外的文字。
'[A-ZA-Z0-9]'是不夠的,符合UNIX路徑 - 你不能在POSIX路徑中使用的唯一字符是'/'和空字符。 – 2012-08-12 18:14:09
答案在這裏:http://stackoverflow.com/questions/537772/what-is-the-most-correct-regular-expression-for-a-unix-file-path那麼你不希望找到是什麼這裏:http://tools.ietf.org/html/rfc3986#appendix-B所以你需要檢查第一件事,然後丟棄網址。 – N4553R 2012-08-12 18:15:30
我也看看這個問題,但接受的正則表達式沒有爲給定文本我必須在 – strange 2012-08-12 18:25:35