我有興趣使用正則表達式解析Drools規則文件。 有與整個.drl文件的內容的字符串,我想有4子:用Java正則表達式解析Drools規則文件
- 與
<name>
- 的子字符串的內容與
<attribute>
- A的含量子串子與
<conditional element>
- 的子字符串的內容與內容
<action>
一個Drools的規則有後續荷蘭國際集團的結構,根據official documentation:
rule "<name>"
<attribute>*
when
<conditional element>*
then
<action>*
end
我已經使用這種模式嘗試,但目前還沒有行之有效:
^rule"(.|\n|\r|\t)+"(.|\n|\r|\t)+\bwhen\b(.|\n|\r|\t)+\bthen\b(.|\n|\r|\t)+\bend\b?$
沒有人有我怎麼可能進行的想法?
'.' can匹配行分隔符以外的任何內容。如果你想讓'.'來匹配它們,而不是'。\ n | \ r | \ t'來簡單的使用'.',那麼'Pattern.DOTALL'標誌就會添加到你的正則表達式中。另外''但它運作不好'並不是描述你面對這個正則表達式問題的最好方法。你能解釋你如何使用這個正則表達式,你的輸入,輸出和預期輸出是什麼?我懷疑'(。| \ n | \ r | \ t)+'是貪婪的問題,可以匹配任何東西。 – Pshemo
我會考慮看看javacc的任何類型的複雜解析。 –