作者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
1F:推 huggie:请问一下, string 的 library reference 哪边找? 01/29 19:17
3F:推 huggie:谢谢! 01/29 22:11
4F:推 weisor:感谢! 原来有 lazy matching 的用法 ^^ 01/30 03:23
5F:推 deuter:刚看到一个跟 Regular Expression 的工具推荐 01/30 05:17