[問題] 請問例外的寫法

作者: xvid (DivX)   2012-03-22 00:42:07
語言:C++ TR1 Regular Expressions
環境:gdipp內的xml設定檔
http://code.google.com/p/gdipp/wiki/SETTING_Beta
由於原本該程式設計的邏輯為exclusion list(不渲染的黑名單),
我想利用RE寫出白名單的表示式,不過只找到'^'於[]有except的作用,
但只能對[]內的字元作成例外條件。
換句話說,有無寫法可以對字串作為例外條件,也就是某字串以外的輸入皆符合?
這是一個網站提供的範例
((?!(notepad|mspaint)\.exe).)*
但執行結果不正確:(
有請各位幫忙!謝謝!
不好意思,似乎我表達的有些模糊,下面作點補充。
gdipp是個字體渲染的軟體,能以編輯xml內容作設定,其中部分內容如下:
<exclude>
<process>conhost\.exe</process>
<process>dwm\.exe</process>
<process>logonui\.exe</process>
<process>service\.exe</process>
<process>spoolsv\.exe</process>
<process>svchost\.exe</process>
<process>taskhost\.exe</process>
<process>userinit\.exe</process>
<process>werfault\.exe</process>
<process>wininit\.exe</process>
<process>winlogon\.exe</process>
</exclude>
上述的描述是讓conhost.exe、dwm.exe等系統執行程序不使用gdipp的渲染。
由於我只想對特定一兩個程式使用gdipp渲染字體,依照上述的寫法,我必須把所有可能的執行檔名稱加入上面的列表,將會十分不方便。
所以想利用該程式支援的RE表達(例如:notepad.exe及mspaint.exe以外的所有*.exe)加入上述的exclude process
作者: mars90226 (火星人)   2012-03-22 14:41:00
你直接在程式中改成不符合的就可以了吧?
作者: xvid (DivX)   2012-03-22 15:43:00
不符合的?
作者: PurpleCrow (17868)   2012-03-23 11:51:00
列出一堆字串然後標出你想要的,可能比較容易表達清楚
作者: mars90226 (火星人)   2012-03-25 11:02:00
我的意思是,在你用RE比對的地方改成不符合的就執行不過如果你沒辦法改程式的原始碼的話,這招就不行了
作者: xvid (DivX)   2012-03-25 13:09:00
改原始碼的確也是種方法啦...

Links booklink

Contact Us: admin [ a t ] ucptt.com