正则表达式解析字符串并匹配URL或文件夹路径

时间:2013-05-09 18:01:20

标签: c# .net regex

我正在尝试更改与http://www.google.com等网址匹配的正则表达式,并允许它匹配文件夹名称,例如j:\Folder\Name\Here

我正在为可能存在的任何链接解析消息的文本,并使用匹配的字符串创建Process.Start(string)调用。

我现在的正则表达式如下:

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'"".,<>?«»“”‘’]))

我认为我可以添加到/{1,3}部分以匹配\{1,1}并且它可能会有效,但情况似乎并非如此。

我不确定正则表达式究竟做了什么,因为我自己没有写它。

有没有人有一个正在使用的匹配网址和文件系统文件夹路径的正则表达式的工作示例?或者有没有办法改变现有的正则表达式以实现这一目的?

1 个答案:

答案 0 :(得分:2)

让你尝试过:

[^ ]+?:(//[^ ]*|\\.+\\[^ ]*)

它将匹配:

http://www.google.com

C:\windows\temp internetfiles\
字符串where http://www.google.com is the way to go if you want to save your file to C:\windows\temp internetfiles\ quick and easy

中的