作者GreatShot (我要拿Ph.D.!!!)
看板C_Sharp
標題Re: [問題] 去除字串中間的空白
時間Mon Jan 29 18:01:36 2007
※ 引述《weisor (無所事事)》之銘言:
: 不知道有沒有比較好的做法?
: 如果 "ABC" 換成是一個集合,例如 @"(foo|bar)",
可以
你也打出來了啊 ^^
就是( ) group的construct
嫌麻煩的話你也可以用字串的方式替換就好了
@"....." + SomeRegexPattern + "......"
: 因為要找的 substring 可能是一個 pattern,
: 而 indexof() 是 exact match,
: 目前想到的做法是用 regular expression 去找這個 pattern 在字串中出現的位置,
: 再用 substring 去切。不知道是不是有更好的做法?
那就用Regex.Split()一行就好了
用你給的pattern去切
當然..效率上會差一點囉...
最好還是用Regex.Match就好
但記得用lazy matching的語法
(C#預設都是greedy matching)
其實以上都是比較簡單的寫法...
事實上是很沒效率的
我假設
string a = "ABDFWREGW
ABCSDFEACBAB
ABCCDBD";
比較好的寫法如下
use lazy matching + postive lookaround
Regex myreg = new Regex(@"\w*?(?=ABC)");
其實只有短短的一行相當簡單
但是對很多人來說可能會有點看不懂
BTW
這樣出來的結果就是你要的
詳細我晚點解釋..正要出門 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.5.154
推 huggie:請問一下, string 的 library reference 哪邊找? 01/29 19:17
推 huggie:謝謝! 01/29 22:11
推 weisor:感謝! 原來有 lazy matching 的用法 ^^ 01/30 03:23
推 deuter:剛看到一個跟 Regular Expression 的工具推薦 01/30 05:17