作者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