Re: [問題] 去除字串中間的空白

看板C_Sharp (C#)作者 (我要拿Ph.D.!!!)時間18年前 (2007/01/29 05:25), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/7 (看更多)
※ 引述《weisor (無所事事)》之銘言: : ※ 引述《GreatShot (我要拿Ph.D.!!!)》之銘言: : : 推廣一下Regex這個class : : 所有你想的到的字串問題 : : 都幾乎可以用regular expression的方式解決 : 我想請教一個困擾我很久的問題 ^^" : 我知道,如果要找第一個 '{' 之前的部分, : regular expression 可以用 /[^{]*{/ : 那當 '{' 改成字串,而不只是某個字元集合的時候, : 也就是我想找第一個 substring 之前的部分的話, : regular expression 該怎麼寫呢? : 例如從 "xxxxABCyyyyyABCzzzz" 找第一個 "ABC" 之前的部分, : 也就是 "xxxxABC" 這一串。 : : 花個時間去熟悉它吧 : : 對你有幫助的 這例子有點籠統 但 如果你的case恰巧正如你的例子這樣 xxxx yyy zzz 中不包含"A","B" and "C" 那就把pattern設成@"[^ABC]*[A]{1}[B]{1}[C]{1}"就可以了 用Regex.Match or Regex.Matches去抓即可 甚至你想用Regex.Split之後再把"ABC"加回去也是可以 但如果你的case是類似DNA sequence ATGCGCTTGCACTGAGAG這樣 然後你要抓出AGA之前的所有字串 那就是另外的寫法了 比較笨的方法就是先把AGA(或是類似的pattern)Regex.Replace成某些符號 eg. "###" 再按照前面的方法炮製就好了 其實方法還有很多種 甚至用string 的 indexof() with substring() 也是作的出你要的需求 還更直觀 只是有時候要處理的字串可能有幾十萬筆 而且要match的pattern還不固定 得從資料中學習或是擷取出來 這時候就沒有辦法用一般的string方法寫死在程式裡 Regex這class此時就特別好用了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.110.47 ※ 編輯: GreatShot 來自: 220.133.110.47 (01/29 05:39)
文章代碼(AID): #15lHJRcv (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #15lHJRcv (C_Sharp)