正则表达式:文本中的 URI 部分
全部!我有这样的文本“一些带有 uri http://test.com 和其他单词的文本。”。我需要使用 one 正则表达式获取 uri 的一部分。
我尝试这样做:
string text = "Some text with uri http://test.com and other words.";
string pattern = @"\b(\S+)://([^:]+)(?::(\S+))?\b";
MatchCollection matches = Regex.Matches(text, pattern);
当我写“一些带有 uri http://test.com” 或“word1 的文本”时,它有效http://test.com:5000 word2”。
哪里有错误?
all! I have a text like this "Some text with uri http://test.com and other words.". And I need to get parts of uri using one regular expression.
I try this:
string text = "Some text with uri http://test.com and other words.";
string pattern = @"\b(\S+)://([^:]+)(?::(\S+))?\b";
MatchCollection matches = Regex.Matches(text, pattern);
And it works, when i write "Some text with uri http://test.com" or "word1 http://test.com:5000 word2".
Where is mistake?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的第二个
+
修饰符是贪婪的,因此它会匹配http://
之后的所有内容,除非它命中:
或行尾。试试这个:Your second
+
modifier is greedy, so it's matching everything after thehttp://
unless it hits a:
or the end of the line. Try this:这应该会让你更接近......我仍然不确定你想要得到什么......
如果你能显示你想要的结果,它会有所帮助......
This should get you closer... I"m still not exactly sure what you want to get...
If you could show the results you want it would help...