Java 如何用正则表达式拆分字符串
我想用正则表达式在字符“@”和字符列表([,.!?{}])之间拆分文本。例如,我有下一个文本 @test,@{@test2,dasdas@test3?}@test4@测试5 我想得到下一个数组:Java 如何用正则表达式拆分字符串,java,regex,Java,Regex,我想用正则表达式在字符“@”和字符列表([,.!?{}])之间拆分文本。例如,我有下一个文本 @test,@{@test2,dasdas@test3?}@test4@测试5 我想得到下一个数组: 试验 测试2 测试3 测试4 测试5 我尝试使用下一个正则表达式 /@(.*?[,{}!?。]/ 但它返回的数组不正确。 有人能帮我吗?如果是JavaScript,下面的代码就可以了 string1=“@test,@{@test2,dasdas@test3?}@test4?@test5!” 数组1=st
有人能帮我吗?如果是JavaScript,下面的代码就可以了 string1=“@test,@{@test2,dasdas@test3?}@test4?@test5!”
数组1=string1.拆分(“@”);/*数组[“”,“test”,“{”,“test2,dasdas.”,“test3?}”,“test4?”,“test5!”]*/您可以在Javascript中使用如下内容:
var re = /@([^,.!?{}@]+)/g;
var str = '@test, @{@test2, dasdas. @test3?} @test4? @test5!';
var m;
var arr;
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex)
re.lastIndex++;
arr.push(m[1]);
}
console.log(arr);
//=> ["test", "test2", "test3", "test4", "test5"]
您只需匹配一个
@
,然后将一个或多个字母数字符号与\w+
匹配并捕获:
@(\w+)
看
结果:
test
test2
test3
test4
test5
在Java中,您可以简单地匹配子字符串:
String s = "@test, @{@test2, dasdas. @test3?} @test4? @test5!";
Pattern pattern = Pattern.compile("@(\\w+)");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
System.out.println(matcher.group(1));
}
请参阅(或使用存储在数组中的结果)。Try或类似工具,这些工具在调试正则表达式时非常有用。请发布代码。是JS吗?不是,它是带有字符串拆分方法的Java