簡體   English   中英

打字稿:正則表達式與預期模式不匹配

[英]Typescript: Regex not matching expected pattern

我在打字稿功能中有以下正則表達式:

/([1-9][0-9]*)*?[d]([468]|(?!(22|32|42|52|62|72|82|92|102|200|202))([12][20]{1,2}))([rf!<>=][1-9][0-9]{1,2})*?/g

這個正則表達式的目的是匹配骰子命令,類似於roll20處理骰子命令的方式(例如1d10!投擲1d10,如果它應該落在10上,則投擲另一個d10,依此類推)

前兩組工作正常(我可以在我的應用中單獨運行此程序,並確認它們可以按預期工作)。

最后一組([rf!<>=][1-9][0-9]{1,2})*? 不匹配,除非我在正則表達式的開頭添加^ ,在結尾添加$

作為附錄,如果您對正則表達式本身有任何歡迎的輸入,我敢肯定,有更有效的方式編寫此正則表達式。

帶有*?惰性量化子模式 在正則表達式模式的末尾將永遠不會匹配單個字符,它將始終匹配一個空字符串。

您需要用其貪婪的對等替換懶惰的量詞,以避免在此處添加錨([rf!<>=][1-9][0-9]{1,2})*? -> ([rf!<>=][1-9][0-9]{1,2})*

暫無
暫無

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

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