我挖出了一个正则表达式,它可以识别URL。这是:
Regex regex = new Regex("http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?", RegexOptions.IgnoreCase);
我接下来需要做的是匹配标识的URL和其他字符之间的所有内容,最好是换行符。
所以,如果我有一个像这样的文本块...以一个URL结束,就像 它即将到来,我希望整个文本块都消失了。 http://checkoutmysite.com
应该变为空,因为正则表达式会将所有内容向后匹配到最近的换行符,然后全部取出。
我尝试了一两件事似乎无法得到它。
答案 0 :(得分:2)
使用逐字字符串@"Regexstring"
,优点是,您不需要双重转义。所以例如Regex regex = new Regex(@"\w+");
没问题。
字符类中的大多数字符都不需要转义。
Regex regex = new Regex(@"http://([\w+?.\w+])+([a-zA-Z0-9~!@#$%^&*()_\-=+\\/?.:;',]*)?", RegexOptions.IgnoreCase);
应该与你的相同。
如果你想在你的正则表达式之前删除某些内容,直到之前的换行符,请先放置.*
并在模式前面括号,然后替换为$1
Regex regex = new Regex(@".*(http://([\w+?.\w+])+([a-zA-Z0-9~!@#$%^&*()_\-=+\\/?.:;',]*)?)", RegexOptions.IgnoreCase);
然后regex.replace
以$1
作为替换字符串。