簡體   English   中英

是否有替代 \b 和/或 JFLEX 的負前瞻?

[英]Is there an alternative to \b and/or negative lookahead for JFLEX?

我正在構建一個掃描儀,但似乎無法找到一種方法來使用 JFlex 和 Regex 來識別“if”或“else”等運算符。 由於 JFlex不完全符合我不能使用字邊界或 (?<=\s|^) + (?=\s|$) 因為兩者都不是? 或 $ 是允許的。 這個想法是找到正確編寫的運算符,而不是 ifo 或 elso。 提前致謝。

這個想法是找到正確編寫的運算符,而不是 ifo 或 elso。 提前致謝。

只需使用“if”和“else”,並有另一個匹配ifoelseo的模式(比如標識符),並且在ifelse的模式之后:

"if"                   { /* it's an if */ }
"else"                 { /* it's an else */ }
[a-zA-Z_][a-zA-Z_0-9]* { /* it's an identifier */ }

遵循最大咀嚼規則,這將匹配ifoelseo等輸入的標識符規則,並且僅當不再有匹配標識符規則的輸入前綴時才匹配“if”和“else”規則。

如果您的語言沒有標識符,而ifoelseo只是應該是無效的標記,您可以保留模式並更改操作以將其視為無效標記而不是標識符。

暫無
暫無

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

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