簡體   English   中英

用Java將字符串與正則表達式匹配

[英]Matching a string with a regex in Java

我有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教程: http : //docs.oracle.com/javase/tutorial/essential/regex/intro.html

您的問題是專門針對正則表達式還是DFA?

這是一些您可能想做的示例代碼:

String state = WHATEVER THE DFA's state is

Pattern p = Pattern.compile("ab.(a|c)*");

Matcher m = p.matcher(state);

boolean isMatch = m.matches();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM