![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 請問正則表示式(regular expression)能做到這樣嗎?
(https://www.pcdvd.com.tw/showthread.php?t=971492)
|
---|
引用:
我說過不同工具會有差異性,RE 也不是只有 Perl 系,還有 POSIX RE, POSIX Extended RE 等等,而且各工具定義也不盡相同,如果每用一種都要去查特殊跳脫字元用法就太浪費時間了,所以為什麼我給你的 pattern 都避開使用『工具自定義特殊符號』而使用通用的 [0-9] 這種表示方式,我記得 UE 裡 [\w] 等於 [A-Za-z],所以我看到 vxr 給 \w 馬上就認為定義不同,花不到一分鐘查了一下 expresso,果然在 expresso 裡 \w 是 Match any alphanumeric character 等於 [0-9A-Za-z]。 參考 http://www.codeproject.com/Articles...-Regex-Tutorial 所以你不能在 UE 裡用 \w 來 match [0-9], 此外你不能用 [\w-\.] 這意思就變成了 [0-9A-Za-z-\.] 當然會語法錯誤,你要在 [] 裡單獨 match - 要用 [\-] 或是像我前面給的小技巧 [-0-9] 放在最前面。(我故意這樣放是要讓你想為什我會這樣寫,全都讓我說穿就沒意思了) 多練習吧, expresso 看起來是好工具,不過我沒裝,還有沒特別需要還是盡量用通用的定義吧。 |
受教了,實在太感謝了 :ase
多練習多練習多練習 :cry: |
引用:
人之患在好為人師,這只是互相討論分享心得,我從沒意思擺出教學的態度,其他網友也提供了一些不錯的解法跟工具也讓我學習不少,我以前有 PM 請教過你其他東西,你也很熱心的回答我,就當交個朋友,不用這麼客氣。 我真的覺得你程度很好,只是對 RE 接觸比較少而已,剛好碰到我略懂的皮毛,大家互相一下。 :p :p :p :p :p |
expresso大多是用在.NET(跟我工作有關, 我才使用......)...
因此M$系產品的開發與調校應用到regex使用expresso通常是沒問題的... 還有用在JavaScript應該也是沒問題... |
再請教大家一個問題,我原本是用grep去抓取需要的列(關鍵字:RESULT)再做RE
但是要用linux去下command比較麻煩(公司把ssh封了),請問用ultraedit作正則取代"沒有特定關鍵字的列為空"可行嗎? 我嘗試用 .*\[.{6}\].*可以抓到所有文章裡面有[RESULT]這個關鍵字的列 (有點像是grep 'RESULT' file.txt) 也可以針對那一列為所欲為 但是反其道而行想刪除沒有特定關鍵字的行(ex:刪除沒有[RESULT]的行)就不知道怎麼做了 .*\[^\[][RESULT]{6}[^\]]\.* 邏輯好像還是怪怪的 :laugh: pattern真的錯了,我要再想一下.... |
引用:
“想刪除沒有特定關鍵字的行”,不就是取出有關鍵字的那一行嗎? |
引用:
是,但是重點是ultraedit的RE只能作取代的工作不能做取出的工作吧 (ex100行裡面有60行有關鍵字,"取出"60行) 例如pattern=(.*\[RESULT\].*) 這樣也只能處理我要的那幾行卻不能刪除我不要的那幾行 我要輸出成文字檔->不能用expresso這個分析工具->只有比較熟悉ultraedit->覺得不能取關鍵行 所以我直覺是反其道而行想把沒有關鍵字的行取代成空白並且刪掉(100-40=60) |
引用:
我都是用 RegexBuddy 來做測試 RE 或是跟你一樣的需求,取出我想要的部份 不懂為什麼一定要用 ultraedit,每個工具都有他擅長的部份。 |
沒有想過把 grep 拿到 windows 裡來用嗎?
我在 Windows 裡會用這些工具: http://gnuwin32.sourceforge.net/packages/grep.htm http://gnuwin32.sourceforge.net/packages/sed.htm 此外也看過有人愛用 Cygwin,我個人不是很喜歡就是了。 |
引用:
引用:
感謝你們的意見<(_ _)> 我好像很久前有用過一款MingW在windows下面模擬linux的指令來用 但是年代久遠已經不是很清楚怎麼用了,我先研究一下你們提供的東西 實在感謝提供方向 :hungry: |
所有的時間均為GMT +8。 現在的時間是11:48 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。