java - 如何从字符串中提取单词?

标签 java regex string url extract

假设我有一个字符串: String message = "你应该试试 http://google.com/ ";

现在,我想将“http://google.com/”发送到一个新的 字符串网址

我想做的是: 检查字符串中的“单词”是否以“http://”开头并提取该单词,其中一个单词是 被空格包围的东西(单词的一般英语定义)。

我不知道如何提取字符串,我能做的最好的就是在字符串上使用 startsWith。如何在单词上使用 startsWith 并提取单词? 对不起,如果这有点难以解释。 提前致谢!

编辑:此外,我应该如何从 REGEX 操作中提取单词?如果字符串中的 url 超过 1 个,我应该如何处理?

最佳答案

使用模式和匹配器类。

String str = "blabla http://www.mywebsite.com blabla";
String regex = "((https?:\\/\\/)?(www.)?(([a-zA-Z0-9-]){2,}\\.){1,4}([a-zA-Z]){2,6}(\\/([a-zA-Z-_/.0-9#:+?%=&;,]*)?)?)";
Matcher m = Pattern.compile(regex).matcher(str);
if (m.find()) {
    String url = m.group(); //value "http://www.mywebsite.com"
}

此正则表达式适用于 http://...https://... 甚至 www...网址。其他正则表达式可以很容易地在网上找到。

关于java - 如何从字符串中提取单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13277933/

相关文章:

PHP 拆分逗号分隔值但保留引号

python - 在 dna 序列中进行反向互补的函数

xml - 在 Lua 中查找第一个匹配模式的字符串(XML 模式匹配)

java - LibGDX 对移动和旋转物体(矩形敌人)的碰撞检测

java - 如何优化/更改 "searching"程序Java

java - JPA - 如何在 postgres 文本数组中查找字符串列表

SQL 或正则表达式来匹配结尾与开头相同但相反的字符串

java - 如果索引值超出整数,如何使用String.substring?

.net - 为什么 string.IsNullOrWhiteSpace ("\0") 是假的

java - 在 Java 中使用 PBEWithHmacSHA256AndAES_256 加密要存储在文件中的密码