首页 > 解决方案 > 正则表达式在不使用字符串名称的情况下查找字符串 java 中的第一个单词

问题描述

我有一个字符串,它可以有一个包含符号和数字的句子,而且句子可以有不同的长度

例如


String myString = " () Huawei manufactures phones"

而下一次myString可以有下面的词


String myString = " * Audi has amazing cars &^"

如何使用正则表达式从字符串中获取第一个单词,以便我在第一个 myString 中得到的唯一单词是“Huawei”,而我在第二个 myString 中得到的单词是 Audi

以下是我尝试过的,但是当第一个单词和符号之前有空格时它会失败

String regexString = myString .replaceAll("\\s.*","")

标签: javaandroidregexstring

解决方案


您可以将此正则表达式与捕获组一起使用以进行匹配:

^\W*\b(\w+).*

并替换为:$1

正则表达式演示

Java代码:

s = s.replaceAll("^\\W*\\b(\\w+).*", "$1");

正则表达式详细信息:

  • ^: 开始
  • \W*: 匹配 0 个或多个非单词字符
  • \b: 字边界
  • (\w+): 匹配 1+ 个单词字符并将其捕获到组 #1
  • .*: 匹配任何事后

推荐阅读