我正在尝试使用正则表达式找到一个单词,但我不知道如何使用它。
我会收到一个文字和一个单词,我必须在包含和不包含 @ 或#的文本中找到它,并返回 true 如果我找到它或 false 如果找不到。
但它不能用这样的另一个词:“thisword”。
它可以是单独的,前面是#或@。
我如何用Java做到这一点?
示例:
“@horse是白色的”
“#horse是白色的”
“马是白的”
“糟糕的是白色”
我必须在这三个短语中找到马,#马和@horse这个词。
答案 0 :(得分:3)
我想这就是你想要的:
text.matches("\\b[#@]?" + Pattern.quote(word) + "\\b");
答案 1 :(得分:1)
行...
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(".*(#|@)");
匹配包含#或@。
的字符串