【发布时间】:2017-04-20 00:18:36
【问题描述】:
我一直在尝试从字符串的第三个正斜杠 ("/") 之后获取子字符串。
http://www.google.com/search?q=Regular+Expressions 之前停止?和 # 如果它们存在于字符串中。
我有正则表达式:
Pattern regex = Pattern.compile(":\\/\\/[0-9a-zA-Z-\\.:]+(\\/)([^?#]*)$");
但它不适用于每个字符串
我也想出了正则表达式:
Pattern regex = Pattern.compile("(.*)?:\\/\\/[^#?]*);
但是,这个会在第三个正斜杠(“/”)之前抓取所有内容。
我做错了什么? 谢谢
【问题讨论】:
-
显示两种情况的示例输出(# 和 ?)
-
当您说“不适用于每个字符串”时,请显示您测试的内容
-
另外,你真的需要正则表达式吗?
indexOf和substring可能工作得很好 -
使用字符串“google.com/hello?test#”,它应该只抓住 /hello 避免 ?和 # 个字符。我已经用这些字符串google.com/hello“google.com/search?q=Regular+Expressions&num=1000”“google.com:80/#”进行了测试。仅当 # 被删除时,它才部分适用于最后一个字符串
-
那里甚至没有 3 个
/:)