0
一個跟進先前的問題:PHP how to best edit an RTF File查找coresponding打開/關閉支架
我相信我有一個解決方案,但需要一些更多的幫助。我發現如果我在模板構建器中使用合併域,我的php代碼可以找到/替換這種模式的域:「{\ field}」但問題是,我需要找到整個字符串,刪除所有的RTF標籤,並比較留下的文字。但是,第一步是找到完整的標記。這就是我被卡住的地方。我需要能夠找到整個字符串的長度,從打開的「{」到關閉「}」,以及其他可能的「{}」之間。例如:
{\field{\*\fldinst {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid11370280 MERGEFIELD details_awardee_name }}{\fldrslt {\rtlch\fcs1 \af31507 \ltrch\fcs0
\lang1024\langfe1024\noproof\insrsid11370280 \'abdetails_awardee_name\'bb}}}
如您所見,此示例具有多個嵌入式標記集。這個字符串也會在更多標記的頁面內。有誰知道一種方法來獲得整個字符串的長度?這可以用Regex來完成嗎?一旦我完成了這項工作,我可以繼續剝離所有標籤並進行比較。
感謝 傑森
+1我相信'x'是不匹配多餘的空格添加了可讀性。 – anubhava
你好,謝謝你的回覆。我對正則表達式不太滿意,但其中一個約束條件是搜索以'{\ field'開頭,並找到匹配的右括號,其間包含所有內容。你的例子能適應那個嗎? – jason
另外,如果我有一個字符串:$ str ='test {enclosed {sub {test 3} {test 4}}} end';你的模式只發現兩套,不是所有的 – jason