java - 在 Java 中用正则表达式匹配字符串

标签 java regex finite-automata automata dfa

我有 DFA,但我不知道它是否接受状态。我只知道它接受的正则表达式。我试图找出它是否正在接受状态,因此我研究了 DFA 的每个状态,并且想将接受正则表达式与当前状态生成的单词进行比较。

所以我正在寻找能够将单词与正则表达式进行比较并告诉我它是否匹配的东西,这样我就可以将 DFA 的这种状态标记为已接受状态并转到另一个状态。我试图实现一些算法,但事实证明这对我来说是一个相当复杂的问题。你能就此给我建议吗?谢谢!

字母:{a,b,c}

正则表达式示例:ab.(a|c)*

最佳答案

看看这个页面: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

您正在寻找的是:

boolean isMatch = Pattern.matches("ab.(a|c)*", str);

关于java - 在 Java 中用正则表达式匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13780086/

相关文章:

finite-automata - 设计一个接受 L 的 FA,其中 L = ‘a’ 总是出现三次的字符串

java - Android Studio Gradle 未构建示例应用程序

java - 使用 HttpURLConnection 的多个 Http 请求和响应

java - Java 正则表达式中强制最后一个单词和可选的前面单词/短语

python - 如何使正则表达式不接受某些值?

context-free-grammar - 这个下推自动机 (PDA) 接受什么语言?

java - 当 hive.execution.engine 值其 tez 时出现 NoSuchMethodError

java - java中的URL替换

r - 如何用句点替换单个字母之间的空格

java - 实现 DFA 的最佳方法有哪些?