[英]Need help with using regular expression in Java
我正在尝试匹配'@(a-zA-Z0-9)+“这样的模式,但不匹配'abc @ test'。
所以这就是我尝试的:
Pattern MY_PATTERN
= Pattern.compile("\\s@(\\w)+\\s?");
String data = "abc@gere.com #gogasig @jytaz @tibuage";
Matcher m = MY_PATTERN.matcher(data);
StringBuffer sb = new StringBuffer();
boolean result = m.find();
while(result) {
System.out.println (" group " + m.group());
result = m.find();
}
但是我只能看到“ @jytaz”,而看不到@tibuage。 我该如何解决我的问题? 谢谢。
此模式应该起作用: \\B(@\\w+)
\\B
扫描前面的非单词边界。 \\w+
已经排除了尾随空格。 此外,我还改变了括号,以使@
和+
进入正确的组。 您最好使用m.group(1)
来获取它。
这是重写:
Pattern pattern = Pattern.compile("\\B(@\\w+)");
String data = "abc@gere.com #gogasig @jytaz @tibuage";
Matcher m = pattern.matcher(data);
while (m.find()) {
System.out.println(" group " + m.group(1));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.