我需要在下面的字符串中获取所有以(空格)开头@
和结尾的 字符串(非空) ' '
:
String s = "@test1 @test2 @test3 @test4 @@ @test5";
我希望我能得到所有"test1", "test2", "test3", "test4", "test5"
的字符串。
如何用 java regx 做到这一点?多谢!
您可以使用以下正则表达式
@\w+
\w
类似于[a-zA-Z\d_]
\w+
匹配 1 到多个来自的字符[a-zA-Z\d_]
Java 正则表达式(?<=@)[^@ ]+(?= )
应该可以解决问题。根据 Regex Planet 的 Java 正则表达式页面,正则表达式匹配test1
,test2
和. (不以空格结尾,因此不匹配。)test3
test4
@test5
test5
如果您也可以匹配前导@
s 和尾随s,则可以使用更简单的 Java regex
@[^@ ]+
。
最后我用下面的代码解决了它:
Pattern pattern = Pattern.compile("@\\p{L}+");