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

看板RegExp作者 (紫烏鴉)時間12年前 (2012/03/25 10:08), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串2/4 (看更多)
※ 引述《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嗎? 可以的話就不用那麼麻煩了 ^ ^; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.179.172

03/25 13:12, , 1F
沒錯 的確是這個意思 不過我將版大的RE加入以後沒有效
03/25 13:12, 1F

03/25 13:13, , 2F
該程式還是把所有.exe渲染 我想是程式本身有bug :(
03/25 13:13, 2F

03/25 13:14, , 3F
在他提供的說明頁面只有提供exclude 自行修改成include也沒有
03/25 13:14, 3F

03/25 13:14, , 4F
作用 還是謝謝各位幫忙!
03/25 13:14, 4F

03/26 08:44, , 5F
http://gskinner.com/RegExr/線上測試,RE本身沒問題
03/26 08:44, 5F
文章代碼(AID): #1FRduS9W (RegExp)
文章代碼(AID): #1FRduS9W (RegExp)