java - 正则表达式在不使用字符串名称的情况下查找字符串 java 中的第一个单词
问题描述
我有一个字符串,它可以有一个包含符号和数字的句子,而且句子可以有不同的长度
例如
String myString = " () Huawei manufactures phones"
而下一次myString可以有下面的词
String myString = " * Audi has amazing cars &^"
如何使用正则表达式从字符串中获取第一个单词,以便我在第一个 myString 中得到的唯一单词是“Huawei”,而我在第二个 myString 中得到的单词是 Audi
以下是我尝试过的,但是当第一个单词和符号之前有空格时它会失败
String regexString = myString .replaceAll("\\s.*","")
解决方案
您可以将此正则表达式与捕获组一起使用以进行匹配:
^\W*\b(\w+).*
并替换为:$1
Java代码:
s = s.replaceAll("^\\W*\\b(\\w+).*", "$1");
正则表达式详细信息:
^
: 开始\W*
: 匹配 0 个或多个非单词字符\b
: 字边界(\w+)
: 匹配 1+ 个单词字符并将其捕获到组 #1.*
: 匹配任何事后
推荐阅读
- javascript - What does double question mark mean in javascript / typescript?
- ruby-on-rails - Infinite Oauth token rotation for machine-to-machine connection
- laravel - Laravel how to create a validation rule to allow only a certain value to be chosen based on previous choice
- python - 如何在 metaflow 中创建嵌套分支?
- c - GCC 在将 int 转换为 float 时插入 PXOR
- javascript - 为什么我的 js 函数需要来自我的 php 迭代器的东西?
- android - 在kotlin中设置递增和递减按钮的范围
- python-3.x - "//div[contains(@class,"connexion-content")]//select" 处的元素不可点击
- python - matplotlib如何在动画时旋转图像
- visual-studio - Visual Studio 2019 IntelliSense 中的奇怪行为