作者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
1F:推 david220:4. /^!"(\S+\s*)+"/ S前少一个\ 10/04 09:03
2F:→ willhunting:喔 抱歉 我是在这里没打上 我程式里还是有\的 10/04 09:31
3F:推 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)
4F:推 willhunting:A兄 4我照这样打也还是不行 说不定是我其他规则定的 10/04 10:05
5F:→ willhunting:有ambiguous的状况 想请教2的问题可能是哪里呢? 10/04 10:06
6F:推 badwork:regexp已经开版罗,大家可以移过去讨论~~ 10/04 17:45
--
派特.莱利说道 : "他仍然是米高.佐丹(Michael Jordan)"
2001. Oct
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 160.39.59.116