我正在尝试检测另一个字符串中的URL。我得到了另一个SO的回答。但是,它不适用于我们需要的用例。
Detect and extract url from a string?
URL_REGEX = "(?:^|[\\W])((ht|f)tp(s?):\\/\\/|www\\.)"
+ "(([\\w\\-]+\\.){1,}?([\\w\\-.~]+\\/?)*"
+ "[\\p{Alnum}.,%_=?&#\\-+()\\[\\]\\*$~@!:/{};']*)";
Pattern p = Pattern.compile(URL_REGEX, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
String str = "hello example.com"; // DOES NOT WORK
//str = "$ANY_WORD example.com $ANY_WORD_1"; // DOES NOT WORK
str = "hello http://example.com"; // WORKS
是否可以修改str = "hello example.com"
以上的正则表达式工作?
输入字符串可以是许多单词和网址的组合
答案 0 :(得分:0)
如果您只是按照指示在正常字符串中搜索,我没有理解为什么您使用非捕获组启动正则表达式。但..
它应该可以删除BitVector
但除非你添加[a-z - ] {5}
,否则你会错过你好我主要使用https://regexr.com/
构建并测试我的正则表达式