Re: [問題] 去除字串中間的空白
※ 引述《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)
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章