使用正则表达式查找带有@的单词

时间:2011-07-18 22:54:02

标签: java regex

我正在尝试使用正则表达式找到一个单词,但我不知道如何使用它。

我会收到一个文字和一个单词,我必须在包含和不包含 @ 的文本中找到它,并返回 true 如果我找到它或 false 如果找不到。

但它不能用这样的另一个词:“thisword”。

它可以是单独的,前面是#或@。

我如何用Java做到这一点?

示例:

“@horse是白色的”

“#horse是白色的”

“马是白的”

“糟糕的是白色”

我必须在这三个短语中找到马,#马和@horse这个词。

3 个答案:

答案 0 :(得分:3)

我想这就是你想要的:

text.matches("\\b[#@]?" + Pattern.quote(word) + "\\b");

答案 1 :(得分:1)

行...

1)是的,有办法。 Hereand Here

2)我相信这会对你有所帮助

public class TestRegex {

public static void main(String[] args) {
    String word = "cat";
    Pattern p = Pattern.compile("\\b[#@]?" + Pattern.quote(word) + "\\b");

    Matcher m = p.matcher("find c@t me @cat #cat c#t cat thiscat");

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

}

答案 2 :(得分:0)

由于缺乏示例,您的问题不明确,但我相信这就是您的意思:

str.matches(".*(#|@)");

匹配包含#或@。

的字符串