[問題] 取得連續字符以外字串資料

看板RegExp作者 (總裁)時間11年前 (2012/08/21 02:17), 編輯推噓3(305)
留言8則, 4人參與, 最新討論串1/2 (看更多)
各位前輩好 小弟日前遇到一個問題,是取得連續字符以外的字串 已事先爬過精華區的文章,但還是沒看過類似問題。 ex. SP1--BAC-C 我想取得2個結果 1. SP1 2. BAC-C 之前測試過[^-]+來取得資料 不過會得到3個結果 1. SP1 2. BAC 3. C 所以目前的做法是先找出--來取代成單一字符後,再使用[^-]+來取得結果。 但是我還是覺得應有更簡單的作法。 不知各位前輩們是否有其它想法,可以指導一下小弟。 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.51.213

08/21 03:50, , 1F
([^-]+(?:-[^-]+)?)
08/21 03:50, 1F

08/21 04:08, , 2F
更正 ([^-]+(?:(?:-[^-]+)+)?)
08/21 04:08, 2F

08/21 04:17, , 3F
上面那個會抓不到 aa--bb-cc- 中 cc 後面那個 -
08/21 04:17, 3F

08/21 04:18, , 4F
要的話可以補這個 (?:-$)?
08/21 04:18, 4F

08/21 08:53, , 5F
可以用這個~ /([^-]|(?<!-)-(?!-))+/
08/21 08:53, 5F

08/21 09:15, , 6F
推樓上的, 邏輯很好懂 Orz
08/21 09:15, 6F

08/21 09:22, , 7F
[^-\n]+(-[^-\n]+)*
08/21 09:22, 7F

08/21 20:18, , 8F
測試成功!多謝前輩們的指導!
08/21 20:18, 8F
文章代碼(AID): #1GCdzLIF (RegExp)
文章代碼(AID): #1GCdzLIF (RegExp)