作者willhunting (這些年來)
看板RegExp
標題[問題] 關於regular expression
時間Fri Oct 5 10:26:49 2007
※ [本文轉錄自 perl 看板]
作者: willhunting (這些年來) 看板: perl
標題: [問題] 關於regular expression
時間: Thu Oct 4 04:26:21 2007
Hi!各位先進,我是perl的新手,現在在處理字串上遇到了一點麻煩想來
這裡跟各位討教。是這樣的,我目前要對使用者輸入的搜尋字串作一些
判別,規則是這樣的:
1. cat : 使用者要找cat這個字
2. "cat dog" : 使用者要找cat dog,一定要連在一起
3. !pig : 使用者要找不含pig的
4. !"pig duck" : 使用者要找不含連在一起的"pig duck"
因為上述所有組合可能在一個command裡面包含,所以我要個別進行判別
再作處理,所以我對四種狀況的判讀是這樣寫的
1. /^[^!]\S+/
2. /^"(\S+\s*)+"$/
3. /^![^"]\S+/
4. /^!"(\S+\s*)+"/ <= 出問題了
1-3都沒有問題,但第4個,也就是處理!"pig duck"這樣子的情況時,如果中間
有空格,perl會以規則1去抓出duck"來,但如果中間不放空格,也就是如果把
輸入改成!"pigduck"的話就沒問題,請問該用什麼樣的regex來寫比較好呢?
謝謝!!
--
派特.萊利說道 : "他仍然是米高.佐丹(Michael Jordan)"
2001. Oct
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 160.39.59.116
推 david220:4. /^!"(\S+\s*)+"/ S前少一個\ 10/04 09:03
→ willhunting:喔 抱歉 我是在這裡沒打上 我程式裡還是有\的 10/04 09:31
推 Andor:2也沒問題嗎? 4--> /^!"((\S+\s*)+)"/ 10/04 09:42
※ 編輯: willhunting 來自: 160.39.247.23 (10/04 10:02)
※ 編輯: willhunting 來自: 160.39.247.23 (10/04 10:02)
推 willhunting:A兄 4我照這樣打也還是不行 說不定是我其他規則定的 10/04 10:05
→ willhunting:有ambiguous的狀況 想請教2的問題可能是哪裡呢? 10/04 10:06
推 badwork:regexp已經開版囉,大家可以移過去討論~~ 10/04 17:45
--
派特.萊利說道 : "他仍然是米高.佐丹(Michael Jordan)"
2001. Oct
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 160.39.59.116