在String中获取一串单词(regex Java)

时间:2016-03-15 23:03:28

标签: regex

我有一系列字符串,例如:

HH,123你好我的名字是John 123

我正在使用以下正则表达式来表达“我的名字是John'”,

"\\s[A-Za-z]+"

然后我使用以下内容检查正则表达式是否与我想要的短语匹配:

while(m.find()) {
   System.out.println(m.group());
}

我的问题是为什么结果会打印出以下内容:

Hello
My
Name
Is
John

而不是'你好我的名字是约翰'。

1 个答案:

答案 0 :(得分:0)

您的正则表达式不正确。它只匹配space然后匹配任意数量的大写和小写字母,您需要它在末尾再捕获一个空格。如果你没有添加额外的空间搜索,那么每个组都将是:“你好”“我的”“名字”等。

试试这个:

String regex = "\\s[A-Za-z\\s]+"

正如评论中所指出的,这个简单的正则表达式将包括领先的空间和尾随空间。使用.trim()

可以轻松删除此内容

您可以测试正则表达式here