C#正则表达式新手,简单问题请教

fwc 2014-11-04 05:22:55
例如Http://192.168.0.100/test/services/mytest.asmx这样的字符串,如何通过正则表达式解析出前面http://192.168.0.100/test部分,因为这部分是会改变的。
...全文
224 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fwc 2014-11-13
  • 打赏
  • 举报
回复
引用 8 楼 youzelin 的回复:
[quote=引用 3 楼 sp1234 的回复:] 对于
var uri = new Uri(str);
你需要分别取得 uri.uri.Host 以及 uri.PathAndQuery 的第二个“/”符号分隔的部分即可。 url 有各种不同的形式,例如你连“端口号”都不知道考虑,那么你这种程序设计,或者你也不知道考虑有些 url 根本没有写“http://”这个头,这种程序就成了简单地匹配字眼、而不理解规范了。
一碰到字符串处理,马上第一反应 ----- 正则。建议先想想用更可靠、更合理、更易于维护的方式去实现代码。不要为了使用正则而去使用正则。很多时候,正则是一把双刃剑,而且更多时候,正则是在其它方法无法解决的棘手问题的时候,闪亮登场的。或者更加适合使用的时候,操作一下的。[/quote] 前面说了,想通过这个相对简单的例子,理解下正则,并不是必须用正则来解答,比如这个,如果用字符串匹配,可能更加简单。
youzelin 2014-11-05
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
对于
var uri = new Uri(str);
你需要分别取得 uri.uri.Host 以及 uri.PathAndQuery 的第二个“/”符号分隔的部分即可。 url 有各种不同的形式,例如你连“端口号”都不知道考虑,那么你这种程序设计,或者你也不知道考虑有些 url 根本没有写“http://”这个头,这种程序就成了简单地匹配字眼、而不理解规范了。
一碰到字符串处理,马上第一反应 ----- 正则。建议先想想用更可靠、更合理、更易于维护的方式去实现代码。不要为了使用正则而去使用正则。很多时候,正则是一把双刃剑,而且更多时候,正则是在其它方法无法解决的棘手问题的时候,闪亮登场的。或者更加适合使用的时候,操作一下的。
smthgdin_020 2014-11-05
  • 打赏
  • 举报
回复
http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
fwc 2014-11-05
  • 打赏
  • 举报
回复
似乎是只对192.168.0.100类的地址起作用,如果换做www.baidu.com之类就不行了。
sunny906 2014-11-05
  • 打赏
  • 举报
回复

            string txt = "Http://192.168.0.100/test/services/mytest.asmx";
            Match m = Regex.Match(txt, @"(?i)http://[0-9.]+/\w+");
            Console.WriteLine(m.Value);
wjq 2014-11-05
  • 打赏
  • 举报
回复
(?<url>https?://.*)/services/mytest.asmx 用捕获组,捕获到的组里,名为url的value就是前面部分。构造正则的时候参数记得选择忽略大小写。
  • 打赏
  • 举报
回复
对于
var uri = new Uri(str);
你需要分别取得 uri.uri.Host 以及 uri.PathAndQuery 的第二个“/”符号分隔的部分即可。 url 有各种不同的形式,例如你连“端口号”都不知道考虑,那么你这种程序设计,或者你也不知道考虑有些 url 根本没有写“http://”这个头,这种程序就成了简单地匹配字眼、而不理解规范了。
Summer__Yan 2014-11-04
  • 打赏
  • 举报
回复
试试这个 Regex r = new Regex("http://[^/]*?/[^/]*?/", RegexOptions.IgnoreCase); 取到的是 http://192.168.0.100/test/ 匹配所有http://开头 到第二个 / 的内容。
於黾 2014-11-04
  • 打赏
  • 举报
回复
貌似*/services/mytest.asmx就可以了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧