簡體   English   中英

Lookahead斷言(正則表達式)在JFlex中不起作用

[英]Lookahead assertions (regular expressions) not working in JFlex

我正在嘗試使用JFlex生成掃描儀。

我試圖實現的語法的標識符規則之一如下(在正則表達式語法中):

[a-zA-Z]((_(?!_)|[a-zA-Z0-9])*[a-zA-Z0-9])?

我已經驗證上面的表達式實際上是有效的並且有效。 然而,似乎jFlex 1.4.3不喜歡我使用前瞻斷言(?!_)因為它一直在抱怨“ 問號 ”。 有什么我做錯了或者在JFlex中使用前瞻有什么不同嗎?

我使用“ lookahead ”來滿足規則,即我不能在標識符名稱中有兩個連續的下划線。

任何幫助,將不勝感激。

代替

[a-zA-Z]((_(?!_)|[a-zA-Z0-9])*[a-zA-Z0-9])? 

使用優化模式

[a-zA-Z]+(_[a-zA-Z0-9]+|[a-zA-Z0-9]+)* 

暫無
暫無

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

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