作者sucao (总裁)
看板RegExp
标题[问题] 取得连续字符以外字串资料
时间Tue Aug 21 02:17:54 2012
各位前辈好
小弟日前遇到一个问题,是取得连续字符以外的字串
已事先爬过的文章,但还是没看过类似问题。
ex.
SP1--BAC-C
我想取得2个结果
1. SP1
2. BAC-C
之前测试过[^-]+来取得资料
不过会得到3个结果
1. SP1
2. BAC
3. C
所以目前的做法是先找出--来取代成单一字符後,再使用[^-]+来取得结果。
但是我还是觉得应有更简单的作法。
不知各位前辈们是否有其它想法,可以指导一下小弟。
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.121.51.213
1F:→ n6333373:([^-]+(?:-[^-]+)?) 08/21 03:50
2F:→ n6333373:更正 ([^-]+(?:(?:-[^-]+)+)?) 08/21 04:08
3F:→ n6333373:上面那个会抓不到 aa--bb-cc- 中 cc 後面那个 - 08/21 04:17
4F:→ n6333373:要的话可以补这个 (?:-$)? 08/21 04:18
5F:推 CindyLinz:可以用这个~ /([^-]|(?<!-)-(?!-))+/ 08/21 08:53
6F:推 n6333373:推楼上的, 逻辑很好懂 Orz 08/21 09:15
7F:推 blackkaku:[^-\n]+(-[^-\n]+)* 08/21 09:22
8F:→ sucao:测试成功!多谢前辈们的指导! 08/21 20:18