我使用mudlet玩泥,並希望使用Perl正則表達式從我的提示中捕獲一些輸入。事情似乎很難做,沒有在我的搜索過度重複。我希望能想出一個優雅的解決優雅的正則表達式在單行上的有限空間內匹配
這裏是我的示例提示行:[NESWDNeSeSwNw] [The Palace Square-Bastion] [|Excl] >)|61|(<
我想捕捉的方向的列表,其中每個方向有一個大寫字母開始,可能會或可能不包含小寫字母(僅限對角線)。有效的大寫字母是NESWUD(主要指標),有效的小寫字母只是ew(對角線指標)
我試圖使用以下內容:^.([NESWUD]{1}[ew]?)+.
(點符合括號,因爲括號似乎無法被mudrif用於觸發器的pcre中逃脫)
該解決方案的問題在於它沒有捕獲所有的方向,貪婪的匹配只匹配最後一個directon「Nw
」。如果我把它分解出來,將捕獲組和貪婪移除到[NESWUD]{1}[ew]?
,它就會讓我在任何地方發現大寫字母的每一個字符,而不僅僅是在我的提示中。
任何幫助將不勝感激。
爲什麼這個標籤用'lua'雖然呢?基於lua的解決方案也可以接受嗎? – greatwolf
您可以使用\來取消Mudlet中的括號。 Mudlet使用PCRE([manual](http://www.pcre.org/pcre.txt))進行正則表達式匹配。 一個基於Lua的解決方案也是可以接受的,因爲Mudlets觸發器允許運行Lua代碼來匹配 - 所以返回「true」的任何東西都將被視爲匹配。 – Vadi