Java 正斜杠后的字符串
到目前为止我使用regex的模式Java 正斜杠后的字符串,java,regex,Java,Regex,到目前为止我使用regex的模式 Pattern regex = Pattern.compile("^.*?\/\/([^:\/\s]+)(.*(?=\?|\#))", Pattern.DOTALL); 在处理字符串时,它成功地捕获了我试图避免的/吗?然而,当我尝试时,问题出现了 结尾处的空白阻止它在第2组中查找。我已尝试在前瞻中包含\p{Blank},但没有任何效果 “” 与上面的字符串相同;它在搜索之前抓取/搜索?但只要我一试“它就坏了” 我怎样才能解决这个问题 谢谢你抽出时间 下面的答案
Pattern regex = Pattern.compile("^.*?\/\/([^:\/\s]+)(.*(?=\?|\#))", Pattern.DOTALL);
在处理字符串时,它成功地捕获了我试图避免的/吗?然而,当我尝试时,问题出现了
结尾处的空白阻止它在第2组中查找。我已尝试在前瞻中包含\p{Blank},但没有任何效果
“”
与上面的字符串相同;它在搜索之前抓取/搜索?但只要我一试“它就坏了”
我怎样才能解决这个问题
谢谢你抽出时间 下面的答案假设输入是URL,我们将只获取一部分,而不使用
查询字符串
。试试这个
(http)s?:\/\/[^#?]+
如果希望使用旧的多捕获方法,可以使用(.+)
更改(http)s?
。。尽管我们可以直接定义协议,比如(http | ftp |…)s?
结尾的空白阻止它只找到它。另外,我也尝试过修剪所有的空白,但是它仍然找不到没有任何东西的令牌/