作者GreatShot (我要拿Ph.D.!!!)
看板C_Sharp
标题Re: [问题] 去除字串中间的空白
时间Mon Jan 29 05:25:46 2007
※ 引述《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)