看板 RegExp 關於我們 聯絡資訊
各位前輩好 小弟日前遇到一個問題,是取得連續字符以外的字串 已事先爬過精華區的文章,但還是沒看過類似問題。 ex. SP1--BAC-C 我想取得2個結果 1. SP1 2. BAC-C 之前測試過[^-]+來取得資料 不過會得到3個結果 1. SP1 2. BAC 3. C 所以目前的做法是先找出--來取代成單一字符後,再使用[^-]+來取得結果。 但是我還是覺得應有更簡單的作法。 不知各位前輩們是否有其它想法,可以指導一下小弟。 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.51.213
n6333373:([^-]+(?:-[^-]+)?) 08/21 03:50
n6333373:更正 ([^-]+(?:(?:-[^-]+)+)?) 08/21 04:08
n6333373:上面那個會抓不到 aa--bb-cc- 中 cc 後面那個 - 08/21 04:17
n6333373:要的話可以補這個 (?:-$)? 08/21 04:18
CindyLinz:可以用這個~ /([^-]|(?<!-)-(?!-))+/ 08/21 08:53
n6333373:推樓上的, 邏輯很好懂 Orz 08/21 09:15
blackkaku:[^-\n]+(-[^-\n]+)* 08/21 09:22
sucao:測試成功!多謝前輩們的指導! 08/21 20:18