2
我試圖建立一個非常具體的編輯器與語法突出顯示。 我用正則表達式做了所有簡單的東西,這很簡單,但現在我想用正則表達式添加一些高級功能。Regex積極的前瞻與反向引用
在這種情況下,我想知道是否在任何JumpTo命令上使用了定義的標籤。
例子:
Define1,Command,Command
Define2,Command,Command,JumpTo4
Define3,Command,Command,JumpTo1
Define4,Command,Command
的目標在這裏是要找到每一個定義(Definexxx)由一個JumpTo(一個或多個)引用可能它是前或後定義。 在另一個步驟中,我還想找到任何Define未被任何JumpTo引用。
我試圖表述 「定義(?<標籤> \ d +)(?= JumpTo \ķ<標籤>)」 爲正預測先行。我希望它會找到「Define1」,但它沒有(沒有或沒有多行選項)。
這是可能的一步完成正則表達式,或者我應該放棄這個想法,只考慮兩步法?
不應該「定義(? \ d + \ b)」而不是「定義(? \ d +)\ b」? 在第一個表達式中,「\ b」將包含在中,以便「(?=。* JumpTo \ k \ b)」實際上與「跳轉 \ b \ b」匹配......我是對的? –
Suriv
@Suriv,'\ b'是一個零寬度斷言;無論是在組內還是外部都無關緊要,因爲它不會消耗任何字符。我認爲它看起來更整潔。 –