我有一個字符串與一些嵌入式變量,我需要提取這些變量的名稱。我不熟悉正則表達式,並且無法使其正常工作。正則表達式模式嵌套在其他模式
這裏是和實例的字符串的樣子:
Lorem存有悲坐阿梅德{%#varName1%},consectetur adipisicing #non_var ELIT,sed的
{%#varName2 | PROP1%}做的eiusmod tempor incididunt ut labore et dolore magna aliqua
{%identifier#varName3 | prop2%}。 U en minim minim ven ven ven ven ven ven
變量名的前綴爲#
和被放置在這些分隔符{%
和%}
內部。使用這種表達我可以匹配的變量名:
(?<=#)(.*?)(?=[\s\|])
然而,這也符合#non_var
這不是分隔符中,是不是有效的變量。
我也試過這樣:
(?<={%)(#(.*?)[^\s\|])(?= %})
但是,只有匹配#varName1
和#varName2|prop1
(對此我不需要prop1
部分)。預期結果匹配:
varName1
,varName2
和varName3
。
任何建議將不勝感激。
出色答卷。由於 – Bogdan 2013-03-25 16:42:44
@Bogdan,樂意提供幫助。 :) – 2013-03-25 16:53:50
做了一些調整,這'(?:\ {%[^#] *#)([\ W] *)(?:?*%\})僅捕獲變量名。感謝 – Bogdan 2013-03-25 16:56:27