2012-02-24 65 views
0

我有一個PHP模板引擎,我一直在建設。但是在正則表達式中我並不那麼強大。 我需要找到任何看起來像這樣的mathcing字符串。請記住,這是一個簡單的模板引擎正則表達式,PHP ..從源頭刪除任何字符串

字符串看起來是這樣的:{$字符串}
現在的字符串是隻從一個數組extrateced一個實際的PHP variabel的別名。

謝謝:)

編輯: 沒有任何一個有理解正則表達式很好看,你們使它看起來很容易:P

+0

智者? 「{\ $ \ w +}」會這樣嗎? – Benoit 2012-02-24 16:52:52

+0

你認爲哪些有效的字符出現在字符串標籤中? – 2012-02-24 16:53:14

回答

3

如果你想獲得更詳細和蓋什麼是允許的PHP變量名,你可以試試這個:

\{\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\} 
+0

謝謝,我解決了這個問題。看起來我錯過了兩個捲曲線上的反斜槓。 – 2012-02-24 18:06:59

0
\{\$.*\} 

我認爲應該這樣做。

實際上:

\{\$[A-Za-z]+[^\}]*\} 

匹配的一個或多個字母字符(其一個PHP變量具有開始與),以及零個或多個字符之後。

[^\}]將確保它一次只能找到一個。

+0

'\ {\ $。*?\}'可以更好地工作 – Damp 2012-02-24 16:56:07

+0

@Damp實際上,如果您想查看哪些方面可以做得更好,我更好地更新了我的答案。 – James 2012-02-24 17:01:51

+0

OP是否想要捕獲(他可能會這樣做)'{(。*)}'不會工作,因爲它會匹配這個'{$ a} {$ b}''並捕獲''$ a} { $ b''因爲正則表達式貪婪。我所做的只是改變'。*'爲'。*?'來防止貪婪行爲 – Damp 2012-02-24 17:05:42