Re: [問題] 請問例外的寫法

作者: PurpleCrow (17868)   2012-03-25 10:08:26
※ 引述《xvid ()》之銘言:
: 語言: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
conhost.exe
dwm.exe
logonui.exe
service.exe
spoolsv.exe
svchost.exe
taskhost.exe
userinit.exe
werfault.exe
wininit.exe
winlogon.exe
notepad.exe
mspaint.exe
\w+(?<!notepad|mspaint)\.exe
會得到前11個
不知道是不是你說的意思

該軟體只能exclude不能include嗎?
可以的話就不用那麼麻煩了 ^ ^;
作者: xvid (DivX)   2012-03-25 13:12:00
沒錯 的確是這個意思 不過我將版大的RE加入以後沒有效該程式還是把所有.exe渲染 我想是程式本身有bug :(在他提供的說明頁面只有提供exclude 自行修改成include也沒有作用 還是謝謝各位幫忙!

Links booklink

Contact Us: admin [ a t ] ucptt.com