Java 查找仅包含给定字符的单词:RegEx

Java 查找仅包含给定字符的单词:RegEx,java,regex,Java,Regex,我有一套单词。比如说, abc, adb, acb, cab, abcc, abk, bacc 我想找到那些只有我自己的词 abc 所以,我需要的结果是 abc, acb, cab, abcc, bacc 我需要用正则表达式找到这个。 谁能帮帮我吗。举个简单的例子,不用担心这个案子 [a-c]+ 将匹配来自a-c的一个或多个字母的任意组合 [afz]+ 对a,f,z也一样 以及考虑案例,你还想考虑什么构成一个“单词”(之前和成功的空白或其他什么)?< /P> 或 [和]表示一个字符,而+表示

我有一套单词。比如说,

abc, adb, acb, cab, abcc, abk, bacc
我想找到那些只有我自己的词

abc

所以,我需要的结果是

abc, acb, cab, abcc, bacc
我需要用正则表达式找到这个。

谁能帮帮我吗。

举个简单的例子,不用担心这个案子

[a-c]+

将匹配来自a-c的一个或多个字母的任意组合

[afz]+

对a,f,z也一样

以及考虑案例,你还想考虑什么构成一个“单词”(之前和成功的空白或其他什么)?< /P> 或

[
]
表示一个字符,而
+
表示集合中任何字符的一个或多个<代码>\b为,因此您将只匹配完整单词


下面的正则表达式将找到所有单词,其中只包含abc字符

Pattern regex = Pattern.compile("\\b[abc]+\\b");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
    // matched text: regexMatcher.group()
    // match start: regexMatcher.start()
    // match end: regexMatcher.end()
} 

单词
a
是否构成匹配?嘿,只是一个想法:在请求帮助之前,也许你应该这样做?Java regexps支持
\b
匹配单词边界。(其中“word”的意思是“whatever
\w
匹配”,推测。)这将匹配abcbla blacbla等。这也将匹配“fooabc”或“whatever”@failedev是的,我正在编辑过程中,忘记了。抱歉打扰您,但是除了使用正则表达式之外,还有其他方法查找此类字符串吗?任何可以用于此的算法。如果您的输入是一个列表,您可以使用拆分方法将它们放入一个单词数组中,然后根据您想要/不想要的一组字符检查数组的每个元素。这是一个很好的方法,但我有一些大的性能问题。我发现了Boyer Moore字符串搜索算法和一些算法,但我无法将它们用于此问题。甚至有一个C语言的实现。为什么你不能使用它们呢?
\\b[a-c]+\\b
Pattern regex = Pattern.compile("\\b[abc]+\\b");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
    // matched text: regexMatcher.group()
    // match start: regexMatcher.start()
    // match end: regexMatcher.end()
}