我很難擺脫我不想要的表達式,並保留我做的位。正則表達式匹配{if cond} foo {else} bar {/ if}
的問題是 - 定的輸入字符串:
{if cond}foo{else}bar{/if}
我想正好有:
0: {if cond}foo{else}bar{/if}
1: cond
2: foo
3: bar
而對於輸入字符串:
{if cond}foo{/if}
我d只想擁有:
0: {if cond}foo{else}bar{/if}
1: cond
2: foo
3:
我目前得到的正則表達式如下:
\{if ([a-z0-9]+)\}([^\{]*?)(((?:\{else\})?)(.*?)?)\{/if\}
我得到以下數據傳回:
0: {if cond}foo{else}bar{/if}
1: cond
2:
3: foo{else}bar
4:
5: foo{else}bar
這將需要foo{else}bar
位的進一步分析,以獲得相應的值。
我的正則表達式靠近嗎?
我不太在意可能會運行的數據類型 - 包括{
在if語句的主體中允許打破正則表達式。 foo
和bar
的值可以是任何不包含{
的值。
感謝,
大教堂
你可以簡單地編輯你以前的問題? – AnthonyWJones 2009-01-13 16:09:08
我沒有意識到我發佈了它 - 我很快就點擊了後退按鈕,這讓我感到很慚愧。 – 2009-01-13 16:13:39
如果你願意,我可以關閉這個並編輯並重新打開另一個? – 2009-01-13 16:14:11