我一直在试图想出一个正则表达式,将从给定文本过滤出所有有效的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