我有幾個簡碼生成製表符,手風琴,鏈接圖片庫,圖標等,並能夠匹配他們的代碼,並在必要時刪除它們,但我結束了除去德國或俄羅斯的特殊字符。Preg替換方括號中的所有內容,包括方括號,但注意特殊字符
簡碼
<br/>
[tabs id="myid" type="tabnav"]<br/>
[tabsgroup title="Tab title" active="1"]Tab für goes here...[/tabsgroup]<br/>
[tabsgroup title="Tab title" active="0"]Tab für goes here...[/tabsgroup]<br/>
[tabsgroup title="Tab title" active="0"]Tab Хёз но фырре доктюж котёдиэквюэ, нэ убяквюэ янжольэнж вэл ...[/tabsgroup]<br/>
[/tabs]<br/>
刪除的簡
$cleanStr = preg_replace(array(
'/parse/',
'/pre/',
'/imgs/',
'/fa/',
'/media/',
'/stabsgroup/',
'/stabs/',
'/note/',
'/acgroup/',
'/acs/',
'/stabs/',
'/url="(.*?)"/',
'/link="(.*?)"/',
'/poster="(.*?)"/',
'/width="(.*?)"/',
'/height="(.*?)"/',
'/resp="(.*?)"/',
'/id="(.*?)"/',
'/title="(.*?)"/',
'/type="(.*?)"/',
'/active="(.*?)"/',
'/color="(.*?)"/',
'/name="(.*?)"/',
'/target="(.*?)"/',
'/class="(.*?)"/',
'/image="(.*?)"/',
'/border="(.*?)"/',
'/radius="(.*?)"/',
'/icon="(.*?)"/',
'/close="(.*?)"/',
'/effect="(.*?)"/',
'/days="(.*?)"/',
'/hours="(.*?)"/',
'/[^A-Za-z0-9?!\s]/i', // this here removes the brackets but it also removes special chars
), array(
''
), $str);
我曾嘗試與一個襯墊,但它並沒有在某些情況下工作,所以我有一個像你看到它上面
排隊陣列這裏是一個班輪 http://regex101.com/r/gY3pT3/1
它與j修飾符一起工作,但對於php我將不得不從preg_replace切換到preg匹配全部,並且進一步複雜化應該是非常簡單的事情
替換[]或[] [/ ...] 但留下文字和特殊字符的機智。
任何見解都有幫助。
不錯的一芽,缺少空間,但我想我找到那一個。我的最後一個數組允許空格 – Benn 2014-10-29 13:26:20
[^ \ p {L} | \ p {N} \ s] +/u正常工作!謝謝! – Benn 2014-10-29 13:29:09
啊,你已經準備好了。剛編輯我的答案:-) – Michel 2014-10-29 13:30:34