繁体   English   中英

在Java中使用正则表达式时需要帮助

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM