【发布时间】:2016-12-07 15:21:58
【问题描述】:
我有字符串“http://www.google.com/search?q=Regular+Expressions&num=1000” 我一直在尝试在第三个 /(包括)之后获取子字符串,同时在 ?、# 和空格等字符之前停止
到目前为止,我有正则表达式
Pattern regex = Pattern.compile("(?:.*?\\/){3}([^?#]+)", Pattern.DOTALL);
这个正则表达式的工作部分意味着它捕获了第三个 / 之后的所有内容,但我无法让它包含 /。我想包含它,因为我希望能够知道我在哪里找到了我要捕获的子字符串的开头。
对于字符串“http://www.google.com/”,它没有捕获任何内容,所以我无法确定正则表达式的子字符串从哪里开始
如何改进我的正则表达式以包含第三个 / 并在 exclude 之后捕获所有内容?和#?
【问题讨论】:
-
为什么不用 URL 解析器而不用担心呢?
-
尝试学习,主要使用正则表达式
-
关于正则表达式的最好理解之一是,有时它们不是工作的最佳工具,在这些情况下使用它们会给自己造成可避免的痛苦。它不包括第三个
/,因为它是您的“序言”匹配的一部分。